1 / 11

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. Announcements & Review. Today. Compilation and Execution What’s “javac” do?

osma
Télécharger la présentation

Announcements & Review

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 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 Announcements & Review Lecture 3: Scaffolding and Output

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

  3. 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” Lecture 3: Scaffolding and Output

  4. 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” Lecture 3: Scaffolding and Output

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

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

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

  8. 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 */ Lecture 3: Scaffolding and Output

  9. 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 } } Lecture 3: Scaffolding and Output

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

  11. Questions? Lecture 3: Scaffolding and Output

More Related