Computer Systems: A Programmer s Perspec4ve. Have a tour of computer system at first... Chapter 1

Size: px
Start display at page:

Download "Computer Systems: A Programmer s Perspec4ve. Have a tour of computer system at first... Chapter 1"

Transcription

1 Computer Systems: A Programmer s Perspec4ve Have a tour of computer system at first... Chapter 1 1

2 Computer System Runs the sojware and manages the hardware RISC vs CISC ADDRESS BUS DATA BUS SOFTWARE HARDWARE LOAD/STORE } Opera4ng System ETC ADDRESSIBILITY BIG/LITTLE ENDIAN PIPELINING ALIGNMENT ISA 2

3 Outline Opera7ng System So;ware Hardware 3

4 The role of the opera4ng system Protect the computer from misuse Provide an abstrac7on for using the hardware so that programs can be wriben for a variety of different hardware Manage the resources to allow for reasonable use by all users and programs on a computer 4

5 The UNIX Opera4ng System Developed in 1970s at Bell Labs Kernel wriben in C, also developed at the same 7me C was developed for the purpose of wri7ng UNIX and systems programming We are using a variant of UNIX named Linux Other UNIX variants exist, such as Solaris, and the various BSDs (OpenBSD, NetBSD, FreeBSD, OSX) 5

6 Linux - OS hbps:// 6

7 Outline Opera7ng System So;ware Hardware 7

8 Text/Ascii A file is a sequence of bytes - not a magical container holding the bytes, but the bytes themselves How this informa7on is treated depends on the context the same sequence of bits can be used to represent a character, or an integer, or a floa7ng- point number, or an instruc7on, or... It's all a maber of interpreta7on % emacs hellot.c & 8

9 The compila4on system revisited hello.c %gcc - o hello hello.c Type in program using an editor of your choice (file.c); plain text.c +.h =.i which is the ul7mate source code? i.e. # includes expanded and #defines replaced.i à.s which is assembler source code.s à.o which is an object file; fragments of machine code with unresolved symbols i.e. some addresses not yet known (vars/subrs). hello.o + library links à a.out (default name); resolves symbols, generates an executable. %hello 9

10 Why assembly language? Instruc7on based execu7on Each program on a computer is a sequence of instruc7ons wriben in machine language Processor executes one instruc7on at a 7me in a program, then executes the next one in turn To study code in this form, it's helpful to use assembly language rather than machine language code gcc S hellot.c 10

11 Assembly language really?! Chances are, you ll never write programs in assembly Compilers are much beber & more pa7ent than you are But: Understanding assembly is key to machine- level execu7on model Behavior of programs in presence of bugs High- level language models break down Tuning program performance Understand op7miza7ons done/not- done by the compiler Understanding sources of program inefficiency Implemen7ng system so;ware Compiler has machine code as target Opera7ng systems must manage process state Crea7ng / figh7ng malware x86 assembly is the language of choice! 11

12 Another way to get assembly code Disassembler A tool that determines the instruc7on sequence represented by an executable program file Unix command gcc o hellot hellot.c objdump D t s hellot - d, - - disassemble Display assembler contents of executable sec7ons - D, - - disassemble- all Display assembler contents of all sec7ons - S, - - source Intermix source code with disassembly - s, - - full- contents Display the full contents of all sec7ons requested - t, - - syms Display the contents of the symbol table(s) - T, - - dynamic- syms Display the contents of the dynamic symbol table 12

13 Outline Opera7ng System So;ware Hardware 13

14 Hardware Organiza4on (big picture) Register File hellot executable stored on disk* PC ALU System bus Memory bus Expansion slots for other devices such as network adapters, video cards, etc. Bus Interface I/O bridge Main memory I/O bus USB controller Mouse Keyboard Graphics adapter Display Disk Controller Disk* 14

15 HW organiza4on details Processor (CPU) Interprets/executes instruc7ons stored in main memory Updates the PC to point to the next instruc7on PC (Program Counter) points at (contains the address of) some machine- language instruc7on in main memory ALU Computes new data and address values Register file Small storage device that consists of a collec7on of word- sized registers, each with their own name ISA instruc7on set architecture defines The processor state The format of the instruc7ons The effect each instruc7on will have on the state Instruc7ons: hbp:// jump.com/cis77/reference/instruc7ons_by_mnemonic.html 15

16 HW organiza4on details (cont.) I/O Devices System s connec7on to the external world Transfers informa7on back and forth between the I/O bus and an I/O device Main Memory Temporary storage Holds both the program and the data it manipulates Von Neumann architecture Is organized as a linear array of bytes each with its own unique address star7ng at zero Bus Transfers one word at a 7me Fundamental system parameter Amount can fetch from memory at one 7me Tends to be the size of the data bus 16

17 Memory Hierarchy (chp. 6) 9/27/17 17

18 Target of Memory Hierarchy Op4miza4ons Reduce memory latency The latency of a memory access is the 7me (usually in cycles) between a memory request and its comple7on Maximize memory bandwidth Bandwidth is the amount of useful data that can be retrieved over a 7me interval Manage overhead Cost of performing op7miza7on (e.g., copying) should be less than an7cipated gain 9/27/17 18

19 Abstrac4on Provided by the OS Process (chp. 8) The running of a program done by the processor Threads = mul7ple execu7on units Includes memory and I/O device (i.e. files abstrac7on) Virtual Memory (chp. 9) Provides each process with the illusion that is has exclusive use of the main memory Program code and data Includes files Begins at same fixed address for all processes Address space (chp. 7) Files (chp. 10) Sequence of bytes 19

20 Address Space a quick look An array of 8- bit bytes A pointer is just an index into this array ADDRESS SPACE Kernel virtual memory Decrip4on/info Memory invisible to user code User stack (created at run 7me) Implements func7on calls Memory mapped region for shared libraries Ex. priny func7on 32/64 bit star4ng address Run- 7me heap (created at run 7me by malloc/ calloc) Read/write data Read- only code and data } Dynamic in size Program (executable file) Fixed size Address 0 No7ce symbolically drawn with memory star7ng at the bobom 20

21 What is a system? A collec4on of intertwined hardware and systems sojware that must cooperate in order to achieve the ul4mate goal of running applica4on programs 21

22 Informa4on Representa4on and Interpreta4on Chapter 2 22

23 Outline General introduc7on Hexadecimal and other nota7ons Addressing and byte order Reading Assignment: Chapter 2 Sec7on

24 Are you sure? 8 Let s check * see sizeck.c * try m32 op4on ANSI rules Variables of type char are guaranteed to always be one byte. There is no maximum size for a type, but the following rela7onships must hold: sizeof(short) <= sizeof(int) <= sizeof(long) sizeof(float) <= sizeof(double) <= sizeof(long double) 24

25 Number of values (vs range of values) Every computer has a word size Nominal size of integer and pointer data Address space depends on word size à 2 word- size- in- #bits Is it big enough? 64- bit high- end machines becoming more prevalent Portability issues insensi7ve to sizes of different data types # bytes # bits # of values (2 #bits) low high E E E E E E E E E E E E+38 25

26 Interpreta4on & Representa4on What does this mean? abc x61 Representa7on (encode?) ASCII Simple Binary* One s complement Two s complement* Binary Coded Decimal Floa7ng- point* Limited number of bits to encode a value Will there be a 4me that the value we want to encode does not fit? Yes! OVERFLOW Need to be aware of the range of values that each limited number of bits will hold Inaccuracies exist (see overflw.c) 26

27 Floa4ng point Google what every computer scien7st should know about floa7ng point Squeezing infinitely many real numbers into a finite number of bits requires an approximate representa7on (rounding) Overflow à + Not associa7ve Due to finite precision of the representa7on A float has roughly seven decimal digits of precision see floatpt.c 27

28 Informa4on Storage (general) The machine level program generated has no informa7on about data types It s the C compiler that maintains this type of informa7on The different mathema7cal proper7es of integers vs floa7ng- point arithme7c stem from the difference in how they handle the finite- ness of their representa7ons Integers smaller values but more precise Real wide range of values, but only approximately Defines ranges of values Computer security vulnerabili7es Need to know/understand before progress to machine level programming (chp.3) 28

29 Informa4on Storage (details) Byte = smallest addressable unit of memory Virtual memory = very large array of bytes Address = how byte of memory is uniquely iden7fied Virtual address space = the set of all possible addresses Reminder: no data typing at this level 29

30 Outline General introduc7on Hexadecimal and other nota7ons Addressing and byte order 30

31 Hexadecimal Nota4on (Hex) Base 16 Useful in describing bit paberns Digits 0-9 and A- F In C 0x or 0X prefix interpreted as hex value Not case sensi7ve Example FA1D37B > 0Xfa1d37b, 0xFA1D37B, 0xfA1d37B Easy to convert to/from hex, octal and binary DEC HEX Notes ^ ^ ^ ^ A 11 B 12 C 13 D 14 E 15 F 31

32 Binary to Hex to Octal FYI: bit stands for binary digit Fact: 2 4 = 16 and 2 3 = 8 The power is the # of bits per hex/octal digit Binary to Hex Every 4 bits = 1 hex digit Octal base 8 Digits 0-7 Binary to Octal Every 3 bits = 1 octal digit Example: FA1D37B 16 DEC OCT HEX BIN Notes A B C D E F

33 When value x 10 is a power of 2 x = 2 n for some non- nega7ve integer n, then if x = = 2 4 = = Binary rep of x à 1 followed by n zeroes Hex rep of x is à n = i + 4j Reminder: hex digit 0 in binary is 0000 Leading hex digit where 0 <= i <=3 1 (i=0) 2 (i=1) 4 (i=2) 8 (i=3) Followed by j hex 0s Examples: n=9 à so i = 1 and j = 2 à x = (2)(00) hex i.e. x = n=6 à so i = 2 and j = 1 à x = (4)(0) hex i.e. x =

34 Convert to Decimal (why?) Base ten (decimal): digits 0-9 E.g., = Base eight (octal): digits 0-7 E.g., = Base 16 (hexadecimal): digits 0-9 and A- F. 13C 16 = Base 2 (binary): digits 0, = In general, radix r representa7ons use the first r chars in {0 9, A...Z} and have the form d n- 1 d n- 2 d 1 d 0. Summing d n- 1 r n- 1 + d n- 2 r n d 0 r 0 converts to base

35 Every base is base 10 EXPLANATION In general, 10 X = X = = = = = = = = =

36 Base Conversions Base Conversions Convert to base 10 by mul)plica)on of powers = ( ) 10 Convert from base 10 by repeated division = ( ) 8 Conver7ng base x to base y: convert base x to base 10 then convert base 10 to base y 36

37 More prac4ce Convert from base = ( ) 3 and check = ( ) 16 and check Another way from decimal to base n for n = 2 n 8 n 7 n 6 n 5 n 4 n 3 n 2 n 1 n From LEFT TO RIGHT, ask how many and subtract (219) 10 = ( ) 2 = ( ) 16 37

38 Hex and Binary addi4on/subtrac4on Hex add first, then convert hex to binary and add A + 8 = 13 + F = BEAD = Subtract in hex first, then convert each value to binary and subtract 5CD2 2A0 = = A8D2 3DAC = à carry/borrow 16 each 7me, since the next place is 16 7mes as large (see prac7ce problems) 38

39 Outline General introduc7on Hexadecimal and other nota7ons Addressing and byte order 39

40 Addressing and byte ordering Two conven7ons (for mul7- byte objects)* What is the address of the object? What is the order of the bytes in memory? Typically Mul7- byte objects are stored con7guously The address of the object is given as the smallest address of the bytes used Ø 4- byte integer stored as hex value at address 0x100 Ø So &x = 0x100, and Ø The 4 bytes of x would be stored at memory loca7ons 0x100, 0x101, 0x102, 0x103 xx xx xx xx * Does not apply to characters because they are single byte values 40

41 Addressing and byte ordering (cont) Big Endian The big end goes at byte zero big end means the most significant byte of the given value LiBle Endian The lible end goes at byte zero lible end means the least significant byte of the given value Byte zero means the smallest address used to store the given value Example: hex/given value is 0x What is the big end of the given value? à 01 What is the lible end of the given value? à 67 What is the lower memory address i.e. byte zero? 0x100 Byte order 0x100 0x101 0x102 0x103 Big Endian Litle Endian

42 Big/Litle Endian one lible two lible three lible endians ;o) Byte order Big Endian Litle Endian 0x x x x Byte order Big Endian Litle Endian 0x x x x There is no technological reason to choose one byte ordering conven7on over the other Need to choose a conven7on and be consistent Typically invisible to most applica7on programmers as results are iden7cal What if transferring data, though? Need to know when looking at integer data in memory 42

43 X86 is litle endian Largely, for the same reason you start at the least significant digit (the right end) when you add because carries propagate toward the more significant digits. Pu ng the least significant byte first allows the processor to get started on the add a;er having read only the first byte of an offset. A;er you've done enough assembly coding and debugging you may come to the conclusion that it's not lible endian that's the strange choice it's odd that we humans use big endian. A side note: Humans mostly read numbers and only some7mes use them for calcula7on. Furthermore we o;en don't need the exact numbers when dealing with large quan77es - taking that into account - big endian is a sensible choice for humans It reflects the difference between considering memory to always be organized a byte at a 7me versus considering it to be organized a unit at a 7me, where the size of the unit can vary (byte, word, dword, etc.) 43

44 Endian- ness When is byte ordering an issue? 1. Communica7ons over a network between different machines 2. Representa7on of integer/real numeric data 3. Circumven7on of normal type system Ø Using a cast to allow an object to be referenced according to a different data type from which it was created Use and even necessary for system- level programming Ø Can cast such that the value is a sequence of bytes rather than an object of the original data type #include <stdio.h> void main() { int x = 0x , i; unsigned char *xptr = &x; priny("the integer x is 0x%x\n",x); for (i = 0; i < 4; i++) priny("byte %d is %.2x\n",i+1, *(xptr+i)); } (castex.c) 44

45 Systems can have different word size byte sizes for each type endian- ness (for numeric values) representa7on of pointers character encoding schemes (ascii, ebcdic, unicode) instruc7on formats (again, just a sequence of bytes) ETC 45

CSE2421 Systems1 Introduction to Low-Level Programming and Computer Organization

CSE2421 Systems1 Introduction to Low-Level Programming and Computer Organization Spring 2013 CSE2421 Systems1 Introduction to Low-Level Programming and Computer Organization Kitty Reeves TWRF 8:00-8:55am 1 What s next Computer Systems A Programmer s Perspective 2 The role of the operating

More information

What s next. Computer Systems A Programmer s Perspective

What s next. Computer Systems A Programmer s Perspective What s next Computer Systems A Programmer s Perspective 198 The role of the operating system Protect the computer from misuse Provide an abstraction for using the hardware so that programs can be written

More information

Great Reality #2: You ve Got to Know Assembly Does not generate random values Arithmetic operations have important mathematical properties

Great Reality #2: You ve Got to Know Assembly Does not generate random values Arithmetic operations have important mathematical properties Overview Course Overview Course theme Five realities Computer Systems 1 2 Course Theme: Abstraction Is Good But Don t Forget Reality Most CS courses emphasize abstraction Abstract data types Asymptotic

More information

Welcome to CS 449: Introduc3on to System So6ware. Instructor: Wonsun Ahn

Welcome to CS 449: Introduc3on to System So6ware. Instructor: Wonsun Ahn Welcome to CS 449: Introduc3on to System So6ware Instructor: Wonsun Ahn What is a System? Merriam-Webster dic3onary: A group of related parts that work together Your computer hardware is a system Comprised

More information

Introduction Presentation A

Introduction Presentation A CSE 2421/5042: Systems I Low-Level Programming and Computer Organization Introduction Presentation A Read carefully: Bryant Chapter 1 Study: Reek Chapter 2 Skim: Reek Chapter 1 08/22/2018 Gojko Babić Some

More information

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 3. Aykut Erdem, Erkut Erdem, Fuat Akal

BBM 101 Introduc/on to Programming I Fall 2014, Lecture 3. Aykut Erdem, Erkut Erdem, Fuat Akal BBM 101 Introduc/on to Programming I Fall 2014, Lecture 3 Aykut Erdem, Erkut Erdem, Fuat Akal 1 Today Introduc/on to Programming Basic Concepts Developing Algorithms Crea

More information

Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer

Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13. Fall Lecture #7. Warehouse Scale Computer CS 61C: Great Ideas in Computer Architecture Everything is a Number Instructor: Randy H. Katz hap://inst.eecs.berkeley.edu/~cs61c/fa13 9/19/13 Fall 2013 - - Lecture #7 1 New- School Machine Structures

More information

CS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++

CS101: Fundamentals of Computer Programming. Dr. Tejada www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++ CS101: Fundamentals of Computer Programming Dr. Tejada stejada@usc.edu www-bcf.usc.edu/~stejada Week 1 Basic Elements of C++ 10 Stacks of Coins You have 10 stacks with 10 coins each that look and feel

More information

Chris Riesbeck, Fall Introduction to Computer Systems

Chris Riesbeck, Fall Introduction to Computer Systems Chris Riesbeck, Fall 2011 Introduction to Computer Systems Welcome to Intro. to Computer Systems Everything you need to know http://www.cs.northwestern.edu/academics/courses/213/ Instructor: Chris Riesbeck

More information

How a computer runs a program. Binary Representa8on and Opera8ons on Binary Data. Opera8ng System 9/17/13. You can view binary file contents

How a computer runs a program. Binary Representa8on and Opera8ons on Binary Data. Opera8ng System 9/17/13. You can view binary file contents Consider the following type defini8on and variable declara8ons: struct persont { struct persont p1; char name[32]; int age; struct persont people[40] float heart_rate; }; (1) What type is each of the following

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today: Welcome to EECS 213 Lecture topics and assignments Next time: Bits & bytes and some Boolean algebra Fabián E. Bustamante, Spring 2010 Welcome to Intro. to Computer

More information

Introduction to Computer Systems

Introduction to Computer Systems Introduction to Computer Systems Today:! Welcome to EECS 213! Lecture topics and assignments Next time:! Bits & bytes! and some Boolean algebra Fabián E. Bustamante, 2007 Welcome to Intro. to Computer

More information

CS 61C: Great Ideas in Computer Architecture Direct- Mapped Caches. Increasing distance from processor, decreasing speed.

CS 61C: Great Ideas in Computer Architecture Direct- Mapped Caches. Increasing distance from processor, decreasing speed. CS 6C: Great Ideas in Computer Architecture Direct- Mapped s 9/27/2 Instructors: Krste Asanovic, Randy H Katz hdp://insteecsberkeleyedu/~cs6c/fa2 Fall 2 - - Lecture #4 New- School Machine Structures (It

More information

Reading assignment. Chapter 3.1, 3.2 Chapter 4.1, 4.3

Reading assignment. Chapter 3.1, 3.2 Chapter 4.1, 4.3 Reading assignment Chapter 3.1, 3.2 Chapter 4.1, 4.3 1 Outline Introduc5on to assembly programing Introduc5on to Y86 Y86 instruc5ons, encoding and execu5on 2 Assembly The CPU uses machine language to perform

More information

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C

Introduction to C. Why C? Difference between Python and C C compiler stages Basic syntax in C Final Review CS304 Introduction to C Why C? Difference between Python and C C compiler stages Basic syntax in C Pointers What is a pointer? declaration, &, dereference... Pointer & dynamic memory allocation

More information

Introduction to Computer Systems

Introduction to Computer Systems CS-213 Introduction to Computer Systems Yan Chen Topics: Staff, text, and policies Lecture topics and assignments Lab rationale CS 213 F 06 Teaching staff Instructor TA Prof. Yan Chen (Thu 2-4pm, Tech

More information

Instruc=on Set Architecture

Instruc=on Set Architecture ECPE 170 Jeff Shafer University of the Pacific Instruc=on Set Architecture 2 Schedule Today and Wednesday Closer look at instruc=on sets Fri Quiz 4 (over Chapter 5, i.e. HW #11 and HW #12) 3 Endianness

More information

Bits, Bytes, and Integers

Bits, Bytes, and Integers Bits, Bytes, and Integers B&O Readings: 2.1-2.3 CSE 361: Introduc=on to Systems So@ware Instructor: I- Ting Angelina Le e Note: these slides were originally created by Markus Püschel at Carnegie Mellon

More information

CS 61C: Great Ideas in Computer Architecture Introduc=on to C, Part I. We are here!

CS 61C: Great Ideas in Computer Architecture Introduc=on to C, Part I. We are here! Agenda CS 61C: Great Ideas in Computer Architecture Introduc=on to C, Part I Instructors: Krste Asanovic Randy H. Katz hgp://inst.eecs.berkeley.edu/~cs61c/f12 Review Compile vs. Interpret Python vs. Java

More information

15110 Principles of Computing, Carnegie Mellon University - CORTINA. Digital Data

15110 Principles of Computing, Carnegie Mellon University - CORTINA. Digital Data UNIT 7A Data Representa1on: Numbers and Text 1 Digital Data 10010101011110101010110101001110 What does this binary sequence represent? It could be: an integer a floa1ng point number text encoded with ASCII

More information

Bits, Bytes, and Integers

Bits, Bytes, and Integers Bits, Bytes, and Integers with contributions from Dr. Bin Ren, College of William & Mary 1 Bits, Bytes, and Integers Representing information as bits Bit-level manipulations Integers Representation: unsigned

More information

Data Representa+on in Memory

Data Representa+on in Memory Data Representa+on in Memory CSCI 2400 / ECE 3217: Computer Architecture Instructor: Prof. Jason FriAs Slides adapted from Bryant & O Hallaron s slides 1 Data Representa+on in Memory Basic memory organiza+on

More information

Floa=ng- Point Numbers

Floa=ng- Point Numbers ECPE 170 Jeff Shafer University of the Pacific Floa=ng- Point Numbers 2 Schedule Today Finish up Floa=ng- Point Numbers Homework #3 assigned Monday Character representa=on Homework #2 due Quiz #1 Wednesday

More information

Instruc=on Set Architecture

Instruc=on Set Architecture ECPE 170 Jeff Shafer University of the Pacific Instruc=on Set Architecture 2 Schedule Today Closer look at instruc=on sets Thursday Brief discussion of real ISAs Quiz 4 (over Chapter 5, i.e. HW #10 and

More information

Roadmap. The Interface CSE351 Winter Frac3onal Binary Numbers. Today s Topics. Floa3ng- Point Numbers. What is ?

Roadmap. The Interface CSE351 Winter Frac3onal Binary Numbers. Today s Topics. Floa3ng- Point Numbers. What is ? The Hardware/So@ware Interface CSE351 Winter 013 Floa3ng- Point Numbers Roadmap C: car *c = malloc(sizeof(car)); c->miles = 100; c->gals = 17; float mpg = get_mpg(c); free(c); Assembly language: Machine

More information

Agenda. CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language 8/29/17. Recap: Binary Number Conversion

Agenda. CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language 8/29/17. Recap: Binary Number Conversion CS 61C: Great Ideas in Computer Architecture Lecture 2: Numbers & C Language Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c Numbers wrap-up This is not on the exam! Break C Primer Administrivia,

More information

Virtualization. Introduction. Why we interested? 11/28/15. Virtualiza5on provide an abstract environment to run applica5ons.

Virtualization. Introduction. Why we interested? 11/28/15. Virtualiza5on provide an abstract environment to run applica5ons. Virtualization Yifu Rong Introduction Virtualiza5on provide an abstract environment to run applica5ons. Virtualiza5on technologies have a long trail in the history of computer science. Why we interested?

More information

CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language. Krste Asanović & Randy Katz

CS 61C: Great Ideas in Computer Architecture. Lecture 2: Numbers & C Language. Krste Asanović & Randy Katz CS 61C: Great Ideas in Computer Architecture Lecture 2: Numbers & C Language Krste Asanović & Randy Katz http://inst.eecs.berkeley.edu/~cs61c Numbers wrap-up This is not on the exam! Break C Primer Administrivia,

More information

CS 61C: Great Ideas in Computer Architecture Func%ons and Numbers

CS 61C: Great Ideas in Computer Architecture Func%ons and Numbers CS 61C: Great Ideas in Computer Architecture Func%ons and Numbers 9/11/12 Instructor: Krste Asanovic, Randy H. Katz hcp://inst.eecs.berkeley.edu/~cs61c/sp12 Fall 2012 - - Lecture #8 1 New- School Machine

More information

Page 1. Where Have We Been? Chapter 2 Representing and Manipulating Information. Why Don t Computers Use Base 10?

Page 1. Where Have We Been? Chapter 2 Representing and Manipulating Information. Why Don t Computers Use Base 10? Where Have We Been? Class Introduction Great Realities of Computing Int s are not Integers, Float s are not Reals You must know assembly Memory Matters Performance! Asymptotic Complexity It s more than

More information

Overview of C. Basic Data Types Constants Variables Identifiers Keywords Basic I/O

Overview of C. Basic Data Types Constants Variables Identifiers Keywords Basic I/O Overview of C Basic Data Types Constants Variables Identifiers Keywords Basic I/O NOTE: There are six classes of tokens: identifiers, keywords, constants, string literals, operators, and other separators.

More information

CSE Opera+ng System Principles

CSE Opera+ng System Principles CSE 30341 Opera+ng System Principles Lecture 3 Systems Structure Project 1 Intro CSE 30341 Opera+ng System Principles 2 1 Recap Last Lecture I/O Structure (I/O Interface, DMA) Storage and Memory Hierarchy

More information

Lecture 4: Build Systems, Tar, Character Strings

Lecture 4: Build Systems, Tar, Character Strings CIS 330:! / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 4:

More information

Jin-Soo Kim Systems Software & Architecture Lab. Seoul National University. Integers. Spring 2019

Jin-Soo Kim Systems Software & Architecture Lab. Seoul National University. Integers. Spring 2019 Jin-Soo Kim (jinsoo.kim@snu.ac.kr) Systems Software & Architecture Lab. Seoul National University Integers Spring 2019 4190.308: Computer Architecture Spring 2019 Jin-Soo Kim (jinsoo.kim@snu.ac.kr) 2 A

More information

Programming. Data Structure

Programming. Data Structure Programming & Data Structure For Computer Science & Information Technology By www.thegateacademy.com Syllabus Syllabus for Programming and Data Structures Programming in C, Arrays, Stacks, Queues, Linked

More information

Computer Architecture. CSE 1019Y Week 16. Introduc>on to MARIE

Computer Architecture. CSE 1019Y Week 16. Introduc>on to MARIE Computer Architecture CSE 1019Y Week 16 Introduc>on to MARIE MARIE Simple model computer used in this class MARIE Machine Architecture that is Really Intui>ve and Easy Designed for educa>on only While

More information

A software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp)

A software view. Computer Systems. The Compilation system. How it works. 1. Preprocesser. 1. Preprocessor (cpp) A software view User Interface Computer Systems MTSU CSCI 3240 Spring 2016 Dr. Hyrum D. Carroll Materials from CMU and Dr. Butler How it works hello.c #include int main() { printf( hello, world\n

More information

CSSE232 Computer Architecture I. Datapath

CSSE232 Computer Architecture I. Datapath CSSE232 Computer Architecture I Datapath Class Status Reading Sec;ons 4.1-3 Project Project group milestone assigned Indicate who you want to work with Indicate who you don t want to work with Due next

More information

Byte Ordering. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University

Byte Ordering. Jin-Soo Kim Computer Systems Laboratory Sungkyunkwan University Byte Ordering Jin-Soo Kim (jinsookim@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu Memory Model Physical memory DRAM chips can read/write 4, 8, 16 bits DRAM modules

More information

Hardware: Logical View

Hardware: Logical View Hardware: Logical View CPU Memory Bus Disks Net USB Etc. 1 Hardware: Physical View USB I/O controller Storage connections CPU Memory 2 Hardware: 351 View (version 0) instructions? Memory CPU data CPU executes

More information

Instruction Set. Instruction Sets Ch Instruction Representation. Machine Instruction. Instruction Set Design (5) Operation types

Instruction Set. Instruction Sets Ch Instruction Representation. Machine Instruction. Instruction Set Design (5) Operation types Instruction Sets Ch 10-11 Characteristics Operands Operations Addressing Instruction Formats Instruction Set Collection of instructions that CPU understands Only interface to CPU from outside CPU executes

More information

Data Representa5on. CSC 2400: Computer Systems. What kinds of data do we need to represent?

Data Representa5on. CSC 2400: Computer Systems. What kinds of data do we need to represent? CSC 2400: Computer Systems Data Representa5on What kinds of data do we need to represent? - Numbers signed, unsigned, integers, floating point, complex, rational, irrational, - Text characters, strings,

More information

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science

High Performance Computing Lecture 1. Matthew Jacob Indian Institute of Science High Performance Computing Lecture 1 Matthew Jacob Indian Institute of Science Agenda 1. Program execution: Compilation, Object files, Function call and return, Address space, Data & its representation

More information

UNIT V: CENTRAL PROCESSING UNIT

UNIT V: CENTRAL PROCESSING UNIT UNIT V: CENTRAL PROCESSING UNIT Agenda Basic Instruc1on Cycle & Sets Addressing Instruc1on Format Processor Organiza1on Register Organiza1on Pipeline Processors Instruc1on Pipelining Co-Processors RISC

More information

Outline. Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers. Reading Assignment:

Outline. Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers. Reading Assignment: Outline Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers Reading Assignment: Chapter 2 Integer & Float Number Representa+on related content (Sec+on 2.2, 2.3, 2.4) 1 Why we need to

More information

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger.

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger. CS 110 Computer Architecture Lecture 2: Introduction to C, Part I Instructor: Sören Schwertfeger http://shtech.org/courses/ca/ School of Information Science and Technology SIST ShanghaiTech University

More information

Outline. Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers. Reading Assignment:

Outline. Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers. Reading Assignment: Outline Integer representa+on and opera+ons Bit opera+ons Floa+ng point numbers Reading Assignment: Chapter 2 Integer & Float Number Representa+on related content (Sec+on 2.2, 2.3, 2.4) 1 Why we need to

More information

Instruction Sets Ch 9-10

Instruction Sets Ch 9-10 Instruction Sets Ch 9-10 Characteristics Operands Operations Addressing Instruction Formats 1 Instruction Set (käskykanta) Collection of instructions that CPU understands Only interface to CPU from outside

More information

Instruction Sets Ch 9-10

Instruction Sets Ch 9-10 Instruction Sets Ch 9-10 Characteristics Operands Operations Addressing Instruction Formats 1 Instruction Set (käskykanta) Collection of instructions that CPU understands Only interface to CPU from outside

More information

Computer Organization and Programming

Computer Organization and Programming Sep 2006 Prof. Antônio Augusto Fröhlich (http://www.lisha.ufsc.br) 8 Computer Organization and Programming Prof. Dr. Antônio Augusto Fröhlich guto@lisha.ufsc.br http://www.lisha.ufsc.br/~guto Sep 2006

More information

Draft. Chapter 1 Program Structure. 1.1 Introduction. 1.2 The 0s and the 1s. 1.3 Bits and Bytes. 1.4 Representation of Numbers in Memory

Draft. Chapter 1 Program Structure. 1.1 Introduction. 1.2 The 0s and the 1s. 1.3 Bits and Bytes. 1.4 Representation of Numbers in Memory Chapter 1 Program Structure In the beginning there were 0s and 1s. GRR 1.1 Introduction In this chapter we will talk about memory: bits, bytes and how data is represented in the computer. We will also

More information

Why Don t Computers Use Base 10? Lecture 2 Bits and Bytes. Binary Representations. Byte-Oriented Memory Organization. Base 10 Number Representation

Why Don t Computers Use Base 10? Lecture 2 Bits and Bytes. Binary Representations. Byte-Oriented Memory Organization. Base 10 Number Representation Lecture 2 Bits and Bytes Topics! Why bits?! Representing information as bits " Binary/Hexadecimal " Byte representations» numbers» characters and strings» Instructions! Bit-level manipulations " Boolean

More information

Lecture 2: Number Representa2on

Lecture 2: Number Representa2on CSE 30: Computer Organization and Systems Programming Lecture 2: Number Representa2on Diba Mirza University of California, San Diego 1 Levels of Representation High Level Language Program (e.g., C) Compiler

More information

Bits and Bytes January 13, 2005

Bits and Bytes January 13, 2005 15-213 The Class That Gives CMU Its Zip! Topics Bits and Bytes January 13, 25 Why bits? Representing information as bits Binary / Hexadecimal Byte representations» Numbers» Characters and strings» Instructions

More information

Binary Representations and Arithmetic

Binary Representations and Arithmetic Binary Representations and Arithmetic 9--26 Common number systems. Base : decimal Base 2: binary Base 6: hexadecimal (memory addresses) Base 8: octal (obsolete computer systems) Base 64 (email attachments,

More information

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7

Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Design and Debug: Essen.al Concepts Numerical Conversions CS 16: Solving Problems with Computers Lecture #7 Ziad Matni Dept. of Computer Science, UCSB Announcements We are grading your midterms this week!

More information

Agenda. Address vs. Value Consider memory to be a single huge array. Review. Pointer Syntax. Pointers 9/9/12

Agenda. Address vs. Value Consider memory to be a single huge array. Review. Pointer Syntax. Pointers 9/9/12 Agenda CS 61C: Great Ideas in Computer Architecture Introduc;on to C, Part II Instructors: Krste Asanovic Randy H. Katz hep://inst.eecs.berkeley.edu/~cs61c/f12 Review Pointers Administrivia Arrays Technology

More information

Lecture 2: Memory in C

Lecture 2: Memory in C CIS 330:! / / / / (_) / / / / _/_/ / / / / / \/ / /_/ / `/ \/ / / / _/_// / / / / /_ / /_/ / / / / /> < / /_/ / / / / /_/ / / / /_/ / / / / / \ /_/ /_/_/_/ _ \,_/_/ /_/\,_/ \ /_/ \ //_/ /_/ Lecture 2:

More information

Computer Systems A Programmer s Perspective 1 (Beta Draft)

Computer Systems A Programmer s Perspective 1 (Beta Draft) Computer Systems A Programmer s Perspective 1 (Beta Draft) Randal E. Bryant David R. O Hallaron August 1, 2001 1 Copyright c 2001, R. E. Bryant, D. R. O Hallaron. All rights reserved. 2 Contents Preface

More information

Opera&ng Systems: Principles and Prac&ce. Tom Anderson

Opera&ng Systems: Principles and Prac&ce. Tom Anderson Opera&ng Systems: Principles and Prac&ce Tom Anderson How This Course Fits in the UW CSE Curriculum CSE 333: Systems Programming Project experience in C/C++ How to use the opera&ng system interface CSE

More information

Introduc)on to Compu)ng. Heng Sovannarith

Introduc)on to Compu)ng. Heng Sovannarith Introduc)on to Compu)ng Heng Sovannarith heng_sovannarith@yahoo.com Introduc)on Computers play an increasingly important and nearly indispensable role in everyday life. Computers are used all over the

More information

Byte Ordering. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University

Byte Ordering. Jinkyu Jeong Computer Systems Laboratory Sungkyunkwan University Byte Ordering Jinkyu Jeong (jinkyu@skku.edu) Computer Systems Laboratory Sungkyunkwan University http://csl.skku.edu SSE2030: Introduction to Computer Systems, Spring 2018, Jinkyu Jeong (jinkyu@skku.edu)

More information

Bits and Bytes. Why bits? Representing information as bits Binary/Hexadecimal Byte representations» numbers» characters and strings» Instructions

Bits and Bytes. Why bits? Representing information as bits Binary/Hexadecimal Byte representations» numbers» characters and strings» Instructions Bits and Bytes Topics Why bits? Representing information as bits Binary/Hexadecimal Byte representations» numbers» characters and strings» Instructions Bit-level manipulations Boolean algebra Expressing

More information

Main Memory Organization

Main Memory Organization Main Memory Organization Bit Smallest piece of memory Stands for binary digit Has values 0 (off) or 1 (on) Byte Is 8 consecu>ve bits Word Usually 4 consecu>ve bytes Has an address 8 bits 0 1 1 0 0 1 1

More information

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger.

CS 110 Computer Architecture. Lecture 2: Introduction to C, Part I. Instructor: Sören Schwertfeger. CS 110 Computer Architecture Lecture 2: Introduction to C, Part I Instructor: Sören Schwertfeger http://shtech.org/courses/ca/ School of Information Science and Technology SIST ShanghaiTech University

More information

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers

Number Systems for Computers. Outline of Introduction. Binary, Octal and Hexadecimal numbers. Issues for Binary Representation of Numbers Outline of Introduction Administrivia What is computer architecture? What do computers do? Representing high level things in binary Data objects: integers, decimals, characters, etc. Memory locations (We

More information

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2

Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Computer Architecture and System Software Lecture 02: Overview of Computer Systems & Start of Chapter 2 Instructor: Rob Bergen Applied Computer Science University of Winnipeg Announcements Website is up

More information

17. Instruction Sets: Characteristics and Functions

17. Instruction Sets: Characteristics and Functions 17. Instruction Sets: Characteristics and Functions Chapter 12 Spring 2016 CS430 - Computer Architecture 1 Introduction Section 12.1, 12.2, and 12.3 pp. 406-418 Computer Designer: Machine instruction set

More information

CS 465 Final Review. Fall 2017 Prof. Daniel Menasce

CS 465 Final Review. Fall 2017 Prof. Daniel Menasce CS 465 Final Review Fall 2017 Prof. Daniel Menasce Ques@ons What are the types of hazards in a datapath and how each of them can be mi@gated? State and explain some of the methods used to deal with branch

More information

Programming Languages and Techniques (CIS120)

Programming Languages and Techniques (CIS120) Programming Languages and Techniques (CIS120) Lecture 20 Feb 29, 2012 Transi@on to Java II DON T PANIC Smoothing the transi@on Eclipse set- up instruc@ons in lab today/tomorrow First Java homework assignment

More information

Why Don t Computers Use Base 10? Lecture 2 Bits and Bytes. Binary Representations. Byte-Oriented Memory Organization. Base 10 Number Representation

Why Don t Computers Use Base 10? Lecture 2 Bits and Bytes. Binary Representations. Byte-Oriented Memory Organization. Base 10 Number Representation Lecture 2 Bits and Bytes Topics Why bits? Representing information as bits Binary/Hexadecimal Byte representations» numbers» characters and strings» Instructions Bit-level manipulations Boolean algebra

More information

Course Schedule. CS 221 Computer Architecture. Week 3: Plan. I. Hexadecimals and Character Representations. Hexadecimal Representation

Course Schedule. CS 221 Computer Architecture. Week 3: Plan. I. Hexadecimals and Character Representations. Hexadecimal Representation Course Schedule CS 221 Computer Architecture Week 3: Information Representation (2) Fall 2001 W1 Sep 11- Sep 14 Introduction W2 Sep 18- Sep 21 Information Representation (1) (Chapter 3) W3 Sep 25- Sep

More information

Caching and Demand- Paged Virtual Memory

Caching and Demand- Paged Virtual Memory Caching and Demand- Paged Virtual Memory Defini8ons Cache Copy of data that is faster to access than the original Hit: if cache has copy Miss: if cache does not have copy Cache block Unit of cache storage

More information

Binary Arithme-c CS 64: Computer Organiza-on and Design Logic Lecture #2

Binary Arithme-c CS 64: Computer Organiza-on and Design Logic Lecture #2 Binary Arithme-c CS 64: Computer Organiza-on and Design Logic Lecture #2 Ziad Matni Dept. of Computer Science, UCSB Adding this Class The class is s>ll full at 80 people Unless others drops, people on

More information

Computer Organization - Overview

Computer Organization - Overview Computer Organization - Overview Hyunyoung Lee CSCE 312 1 Course Overview Topics: Theme Five great realities of computer systems Computer system overview Summary NOTE: Most slides are from the textbook

More information

ECE2049: Embedded Computing in Engineering Design C Term Spring Lecture #3: Of Integers and Endians (pt. 2)

ECE2049: Embedded Computing in Engineering Design C Term Spring Lecture #3: Of Integers and Endians (pt. 2) ECE2049: Embedded Computing in Engineering Design C Term Spring 2018 Lecture #3: Of Integers and Endians (pt. 2) Reading for Today: Davies Ch 2, MSP430 User's Guide Ch 6.1, 6.3 Reading for Next Class:

More information

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008

Math 230 Assembly Programming (AKA Computer Organization) Spring 2008 Math 230 Assembly Programming (AKA Computer Organization) Spring 2008 MIPS Intro II Lect 10 Feb 15, 2008 Adapted from slides developed for: Mary J. Irwin PSU CSE331 Dave Patterson s UCB CS152 M230 L10.1

More information

Lecture 03 Bits, Bytes and Data Types

Lecture 03 Bits, Bytes and Data Types Lecture 03 Bits, Bytes and Data Types Computer Languages A computer language is a language that is used to communicate with a machine. Like all languages, computer languages have syntax (form) and semantics

More information

Alterna(ve Architectures

Alterna(ve Architectures Alterna(ve Architectures COMS W4118 Prof. Kaustubh R. Joshi krj@cs.columbia.edu hep://www.cs.columbia.edu/~krj/os References: Opera(ng Systems Concepts (9e), Linux Kernel Development, previous W4118s Copyright

More information

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia.

W1005 Intro to CS and Programming in MATLAB. Brief History of Compu?ng. Fall 2014 Instructor: Ilia Vovsha. hip://www.cs.columbia. W1005 Intro to CS and Programming in MATLAB Brief History of Compu?ng Fall 2014 Instructor: Ilia Vovsha hip://www.cs.columbia.edu/~vovsha/w1005 Computer Philosophy Computer is a (electronic digital) device

More information

Representation of Information

Representation of Information Representation of Information CS61, Lecture 2 Prof. Stephen Chong September 6, 2011 Announcements Assignment 1 released Posted on http://cs61.seas.harvard.edu/ Due one week from today, Tuesday 13 Sept

More information

CSC 2400: Computer Systems. Key to Success

CSC 2400: Computer Systems. Key to Success CSC 2400: Computer Systems Week 1 Goals and Introduction Dr. Mirela Damian Key to Success q Start early to allow +me for debugging 1 Policy: Write your own code q Programming in an individual creative

More information

User. Application program. Interfaces. Operating system. Hardware

User. Application program. Interfaces. Operating system. Hardware Operating Systems Introduction to Operating Systems and Computer Hardware Introduction and Overview The operating system is a set of system software routines that interface between an application program

More information

Announcements HW1 is due on this Friday (Sept 12th) Appendix A is very helpful to HW1. Check out system calls

Announcements HW1 is due on this Friday (Sept 12th) Appendix A is very helpful to HW1. Check out system calls Announcements HW1 is due on this Friday (Sept 12 th ) Appendix A is very helpful to HW1. Check out system calls on Page A-48. Ask TA (Liquan chen: liquan@ece.rutgers.edu) about homework related questions.

More information

Memory and C/C++ modules

Memory and C/C++ modules Memory and C/C++ modules From Reading #5 and mostly #6 More OOP topics (templates; libraries) as time permits later Program building l Have: source code human readable instructions l Need: machine language

More information

The Design of C: A Rational Reconstruction

The Design of C: A Rational Reconstruction The Design of C: A Rational Reconstruction 1 Goals of this Lecture Help you learn about: The decisions that were available to the designers of C The decisions that were made by the designers of C and thereby

More information

Floa.ng Point : Introduc;on to Computer Systems 4 th Lecture, Sep. 10, Instructors: Randal E. Bryant and David R.

Floa.ng Point : Introduc;on to Computer Systems 4 th Lecture, Sep. 10, Instructors: Randal E. Bryant and David R. Floa.ng Point 15-213: Introduc;on to Computer Systems 4 th Lecture, Sep. 10, 2015 Instructors: Randal E. Bryant and David R. O Hallaron Today: Floa.ng Point Background: Frac;onal binary numbers IEEE floa;ng

More information

Computer Architecture

Computer Architecture Computer Architecture Context and Motivation To better understand a software system, it is mandatory understand two elements: - The computer as a basic building block for the application - The operating

More information

Instruction Sets: Characteristics and Functions

Instruction Sets: Characteristics and Functions Instruction Sets: Characteristics and Functions Chapter 10 Lesson 15 Slide 1/22 Machine instruction set Computer designer: The machine instruction set provides the functional requirements for the CPU.

More information

CSC 8400: Computer Systems. Represen3ng and Manipula3ng Informa3on. Background: Number Systems

CSC 8400: Computer Systems. Represen3ng and Manipula3ng Informa3on. Background: Number Systems CSC 8400: Computer Systems Represen3ng and Manipula3ng Informa3on Background: Number Systems 1 Analog vs. Digital System q Analog Signals - Value varies con1nuously q Digital Signals - Value limited to

More information

CS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro

CS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro CS 61C: Great Ideas in Computer Architecture Intro to Assembly Language, MIPS Intro 1 Levels of Representation/Interpretation Machine Interpretation High Level Language Program (e.g., C) Compiler Assembly

More information

THE FUNDAMENTAL DATA TYPES

THE FUNDAMENTAL DATA TYPES THE FUNDAMENTAL DATA TYPES Declarations, Expressions, and Assignments Variables and constants are the objects that a prog. manipulates. All variables must be declared before they can be used. #include

More information

Performance Measurement

Performance Measurement ECPE 170 Jeff Shafer University of the Pacific Performance Measurement 2 Lab Schedule Ac?vi?es Today Background discussion Lab 5 Performance Measurement Wednesday Lab 5 Performance Measurement Friday Lab

More information

Bits, Bytes and Integers

Bits, Bytes and Integers Bits, Bytes and Integers Computer Systems Organization (Spring 2016) CSCI-UA 201, Section 2 Instructor: Joanna Klukowska Slides adapted from Randal E. Bryant and David R. O Hallaron (CMU) Mohamed Zahran

More information

Vulnerability Analysis (III): Sta8c Analysis

Vulnerability Analysis (III): Sta8c Analysis Computer Security Course. Vulnerability Analysis (III): Sta8c Analysis Slide credit: Vijay D Silva 1 Efficiency of Symbolic Execu8on 2 A Sta8c Analysis Analogy 3 Syntac8c Analysis 4 Seman8cs- Based Analysis

More information

Bits, Bytes, and Integers Part 2

Bits, Bytes, and Integers Part 2 Bits, Bytes, and Integers Part 2 15-213: Introduction to Computer Systems 3 rd Lecture, Jan. 23, 2018 Instructors: Franz Franchetti, Seth Copen Goldstein, Brian Railing 1 First Assignment: Data Lab Due:

More information

History of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995

History of Java. Java was originally developed by Sun Microsystems star:ng in This language was ini:ally called Oak Renamed Java in 1995 Java Introduc)on History of Java Java was originally developed by Sun Microsystems star:ng in 1991 James Gosling Patrick Naughton Chris Warth Ed Frank Mike Sheridan This language was ini:ally called Oak

More information

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites:

C Programming. Course Outline. C Programming. Code: MBD101. Duration: 10 Hours. Prerequisites: C Programming Code: MBD101 Duration: 10 Hours Prerequisites: You are a computer science Professional/ graduate student You can execute Linux/UNIX commands You know how to use a text-editing tool You should

More information

Fundamental Data Types. CSE 130: Introduction to Programming in C Stony Brook University

Fundamental Data Types. CSE 130: Introduction to Programming in C Stony Brook University Fundamental Data Types CSE 130: Introduction to Programming in C Stony Brook University Program Organization in C The C System C consists of several parts: The C language The preprocessor The compiler

More information

World Inside a Computer is Binary

World Inside a Computer is Binary C Programming 1 Representation of int data World Inside a Computer is Binary C Programming 2 Decimal Number System Basic symbols: 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 Radix-10 positional number system. The radix

More information