Presentation is loading. Please wait.

Presentation is loading. Please wait.

Lecture 3: Scaffolding and Output Announcements & Review Announcements Discussion Sections: PAI 5.70 until further notice Pair in same discussion

Similar presentations


Presentation on theme: "Lecture 3: Scaffolding and Output Announcements & Review Announcements Discussion Sections: PAI 5.70 until further notice Pair in same discussion"— Presentation transcript:

1 Lecture 3: Scaffolding and Output Announcements & Review Announcements Discussion Sections: PAI 5.70 until further notice Pair in same discussion Email: 305j in subject Last Time Acquiring & creating language Noam Chomsky Catherine Snow

2 Lecture 3: Scaffolding and Output Today Compilation and Execution –What’s “javac” do? –What happens next? Basics –Scaffolding - what every program needs –Making the computer talk to you!

3 Lecture 3: Scaffolding and Output Static Compilation & Execution Easier case: The C programming language “static” ahead-of-time compilation model: Tool: “cc” the C compiler Your file: Circle.c “cc Circle.c” -> (Circle.a) -> a.out Executable: a.out “a.out ”

4 Lecture 3: Scaffolding and Output Dynamic Compilation & Execution Java “dynamic” compilation model: 2 Tools “javac” the Java bytecode compiler “java” the Java virtual machine Your file: Circle.java What do you do in Bluej? “javac Circle.java” -> Circle.class Executing Bytecode: low-level virtual machine form machine independent, portable What do you do in Bluej? “java Circle.class ”

5 Lecture 3: Scaffolding and Output Java Dynamic Compilation Executing Bytecode: “java Circle.class ” What happens? Interpretation vs Dynamic Compilation

6 Lecture 3: Scaffolding and Output Dynamic Compilation & Execution Java “dynamic” compilation model: Executing Bytecode: “java Circle.class ” - What happens? Interpreting 1.map each bytecode to a machine code sequence, 2.for each bytecode, execute the sequence Translation to machine code 1.map all the bytecodes to machine code (or a higher level intermediate representation), 2.massage them (e.g., get rid of redundancies between instructions), 3.execute the machine code

7 Lecture 3: Scaffolding and Output Dynamic Compilation & Execution “Hotspot” compilation, a hybrid 1.Initially interpret 2.Find the “hot” (frequently executed code) methods, and translate only these hot methods to machine code

8 Lecture 3: Scaffolding and Output Basics What you write –Scaffolding - what every program needs –Making the computer talk to you! Comments - tell the compiler to ignore text // the compiler ignores this text on the same line /* For multi-line comments, you can use * this form and it will ignore all this text * too until it sees */

9 Lecture 3: Scaffolding and Output Scaffolding: Magic or Logical? /* Kathryn S McKinley * January 10, 2005 * file: Song.java * My program does nothing right now! */ public class Song { // code can go here public static void main (String [] args) { // code here too }

10 Lecture 3: Scaffolding and Output Printing System.out.print(“I love CS305j.”); System.out.println(“I love CS305j.”); [More examples in Bluej…]

11 Lecture 3: Scaffolding and Output Questions?


Download ppt "Lecture 3: Scaffolding and Output Announcements & Review Announcements Discussion Sections: PAI 5.70 until further notice Pair in same discussion"

Similar presentations


Ads by Google