DOC PREVIEW
Berkeley COMPSCI 61C - Lecture Notes

This preview shows page 1-2-24-25 out of 25 pages.

Save
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

inst eecs berkeley edu cs61c CS61C Machine Structures Lecture 3 Introduction to the C Programming Language 2005 01 24 Lecturer PSOE Dan Garcia www cs berkeley edu ddgarcia Princeton cracks down Previously nearly half the grades given out were A A A not unusual other Ivys 44 55 New cap is 35 EECS policy is 17 Lower div and 23 upper though not strict www ledger enquirer com mld mercurynews news world 10713562 htm CS61C L03 Introduction to C pt 1 1 Garcia Spring 2005 UCB Review 1 Overview We represent things in computers as particular bit patterns N bits 2N Decimal for human calculations binary for computers hex to write binary more easily 1 s complement mostly abandoned 00000 00001 01111 10000 11110 11111 2 s complement universal in computing cannot avoid so learn 00000 00001 01111 10000 11110 11111 Overflow numbers computers finite errors CS61C L03 Introduction to C pt 1 2 Garcia Spring 2005 UCB Review 2 The way to remember s What is 227 How many bits addresses I e what s ceil log2 lg of 19 PiB Answer 2XY means X 0 X 1 X 2 X 3 X 4 X 5 X 6 X 7 X 8 kibi 103 mebi 106 gibi 109 tebi 1012 pebi 1015 exbi 1018 zebi 1021 yobi 1024 CS61C L03 Introduction to C pt 1 3 Y 0 Y 1 Y 2 Y 3 Y 4 Y 5 Y 6 Y 7 Y 8 Y 9 1 2 4 8 16 32 64 128 256 512 MEMORIZE Garcia Spring 2005 UCB Disclaimer Important You will not learn how to fully code in C in these lectures You ll still need your C reference for this course K R is a must have reference Check online for more sources JAVA in a Nutshell O Reilly Chapter 2 How Java Differs from C CS61C L03 Introduction to C pt 1 4 Garcia Spring 2005 UCB Compilation Overview C compilers take C and convert it into an architecture specific machine code string of 1s and 0s Unlike Java which converts to architecture independent bytecode Unlike most Scheme environments which interpret the code Generally a 2 part process of compiling c files to o files then linking the o files into executables CS61C L03 Introduction to C pt 1 5 Garcia Spring 2005 UCB Compilation Advantages Great run time performance generally much faster than Scheme or Java for comparable code because it optimizes for a given architecture OK compilation time enhancements in compilation procedure Makefiles allow only modified files to be recompiled CS61C L03 Introduction to C pt 1 6 Garcia Spring 2005 UCB Compilation Disadvantages All compiled files including the executable are architecture specific depending on both the CPU type and the operating system Executable must be rebuilt on each new system Called porting your code to a new architecture The change compile run repeat iteration cycle is slow CS61C L03 Introduction to C pt 1 7 Garcia Spring 2005 UCB C vs Java Overview 1 2 Java C Object oriented OOP No built in object abstraction Data separate from methods Methods Class libraries of data structures Functions C libraries are lower level Automatic memory management CS61C L03 Introduction to C pt 1 8 Manual memory management Pointers Garcia Spring 2005 UCB C vs Java Overview 2 2 Java C High memory overhead from class libraries Low memory overhead Relatively Slow Arrays initialize to zero Syntax Relatively Fast Arrays initialize to garbage comment comment System out print CS61C L03 Introduction to C pt 1 9 Syntax comment printf Garcia Spring 2005 UCB C Syntax Variable Declarations Very similar to Java but with a few minor but important differences All variable declarations must go before they are used at the beginning of the block A variable may be initialized in its declaration Examples of declarations correct int a 0 b 10 incorrect for int i 0 i 10 i CS61C L03 Introduction to C pt 1 10 Garcia Spring 2005 UCB C Syntax True or False What evaluates to FALSE in C 0 integer NULL pointer more on this later no such thing as a Boolean What evaluates to TRUE in C everything else same idea as in scheme only f is false everything else is true CS61C L03 Introduction to C pt 1 11 Garcia Spring 2005 UCB C syntax flow control Within a function remarkably close to Java constructs in methods shows its legacy in terms of flow control if else switch while and for do while CS61C L03 Introduction to C pt 1 12 Garcia Spring 2005 UCB C Syntax main To get the main function to accept arguments use this int main int argc char argv What does this mean argc will contain the number of strings on the command line the executable counts as one plus one for each argument Example unix sort myFile argv is a pointer to an array containing the arguments as strings more on pointers later CS61C L03 Introduction to C pt 1 13 Garcia Spring 2005 UCB Administrivia You have a question Do not email Dan expect response Hundreds of emails in inbox Email doesn t scale to classes with 200 students Tips on getting an answer to your question Ask a classmate Ask Dan after or before lecture The newsgroup ucb class cs61c Read it Has your Q been answered already If not ask it and check back Ask TA in section lab or OH Ask Dan in OH Ask Dan in lecture if relevant to lecture Send your TA email Send one of the two Head TAs email Send Dan email CS61C L03 Introduction to C pt 1 14 Garcia Spring 2005 UCB Administrivia Near term Upcoming lectures C pointers and arrays in detail HW HW0 due in discussion tomorrow HW1 due this Wed 23 59 PST HW2 due next Wed 23 59 PST Reading K R Chapters 1 5 lots get started now First quiz due Friday Get cardkeys from CS main office Soda Hall 3rd floor if you need want them Soda locks doors 6 30pm on weekends CS61C L03 Introduction to C pt 1 15 Garcia Spring 2005 UCB Address vs Value Consider memory to be a single huge array Each cell of the array has an address associated with it Each cell also stores some value Don t confuse the address referring to a memory location with the value 101 102 103 104 stored in105that location 23 CS61C L03 Introduction to C pt 1 16 42 Garcia Spring 2005 UCB Pointers An address refers to a particular memory location In other words it points to a memory location Pointer A variable that contains the address of a variable Location address 101 102 103 104 105 23 x 42 y 104 p name CS61C L03 Introduction to C pt 1 17 Garcia Spring 2005 UCB Pointers How to create a pointer operator get address of a variable p x x 3 p x 3 p x p x 3 int p x How get a value pointed to Note the gets used 2 different ways in this example In the declaration to indicate that p is going to …


View Full Document

Berkeley COMPSCI 61C - Lecture Notes

Documents in this Course
SIMD II

SIMD II

8 pages

Midterm

Midterm

7 pages

Lecture 7

Lecture 7

31 pages

Caches

Caches

7 pages

Lecture 9

Lecture 9

24 pages

Lecture 1

Lecture 1

28 pages

Lecture 2

Lecture 2

25 pages

VM II

VM II

4 pages

Midterm

Midterm

10 pages

Load more
Loading Unlocking...
Login

Join to view Lecture Notes and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Lecture Notes and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?