The University of North Carolina at Chapel Hill
- Slides: 25
The University of North Carolina at Chapel Hill COMP 144 Programming Language Concepts Spring 2002 Lecture 32: The Java Virtual Machine Felix Hernandez-Campos April 12 COMP 144 Programming Language Concepts Felix Hernandez-Campos 1
The Java Virtual Machine • Java Architecture – Java Programming Language – Java Virtual Machine (JVM) – Java API • We will use the JVM as a case study of an intermediate program representation COMP 144 Programming Language Concepts Felix Hernandez-Campos 2
Reference • The content of this lecture is based on Inside the Java 2 Virtual Machine by Bill Venners – Chapter 1 Introduction to Java's Architecture » http: //www. artima. com/insidejvm/ed 2/ch 01 Intro. To. Javas. Architect ure. Print. html – Chapter 5 The Java Virtual Machine » http: //www. artima. com/insidejvm/ed 2/ch 05 Java. Virtual. Machine 1. html – Interactive Illustrations » http: //www. artima. com/insidejvm/applets/index. html COMP 144 Programming Language Concepts Felix Hernandez-Campos 3
The Java Programming Environment COMP 144 Programming Language Concepts Felix Hernandez-Campos 4
The Java Platform • The byte code generated by the Java front-end is an intermediate form – Compact – Platform-independent COMP 144 Programming Language Concepts Felix Hernandez-Campos 5
Phases of Compilation COMP 144 Programming Language Concepts Felix Hernandez-Campos 6
The Role of the Virtual Machime Local or Remote COMP 144 Programming Language Concepts Felix Hernandez-Campos 7
The Execution Engine • Back-end transformation and execution – Simple JVM: byte code interpretation – Just-in-time compiler » Method byte codes are compiled into machine code the first time they are invoked » The machine code is cached for subsequent invocation » It requires more memory – Adaptive optimization » The interpreter monitors the activity of the program, compiling the heavily used part of the program into machine code » It is much faster than simple interpretation » The memory requirement is only slightly larger due to the 20%/80% rule of program execution (In general, 20% of the code is responsible for 80% of the execution) COMP 144 Programming Language Concepts Felix Hernandez-Campos 8
The Java Virtual Machine COMP 144 Programming Language Concepts Felix Hernandez-Campos 9
Shared Data Areas COMP 144 Programming Language Concepts Felix Hernandez-Campos 10
Thread Data Areas Frame in COMP 144 Programming Language Concepts Execution Felix Hernandez-Campos 11
Stack Frames • Stack frames have three parts: – Local variables – Operand stack – Frame data COMP 144 Programming Language Concepts Felix Hernandez-Campos 12
Stack Frame Local Variables class Example 3 a { public static int run. Class. Method(int i, long l, float f, double d, Object o, byte b) { return 0; } public int run. Instance. Method(char c, double d, short s, boolean b) { return 0; } } COMP 144 Programming Language Concepts Felix Hernandez-Campos 13
Stack Frame Operand Stack Adding 2 numbers iload_0 iload_1 Iadd istore_2 COMP 144 Programming Language Concepts Felix Hernandez-Campos 14
Execution Model • Eternal Math Example – http: //www. artima. com/insidejvm/applets/Eternal. Math. ht ml COMP 144 Programming Language Concepts Felix Hernandez-Campos 15
Stack Frame Data • The stack frame also supports – Constant pool resolution – Normal method return – Exception dispatch COMP 144 Programming Language Concepts Felix Hernandez-Campos 16
Stack Frame Allocation in a Heap class Example 3 c { public static void add. And. Print() { double result = add. Two. Types(1, 88. 88); System. out. println (result); } public static double add. Two. Types(int i, double d) { return i + d; } } COMP 144 Programming Language Concepts Felix Hernandez-Campos 17
Stack Frame Native Method • A simulated stack of the target language (e. g. C) is created for JNI COMP 144 Programming Language Concepts Felix Hernandez-Campos 18
The Heap • Class instances and array are stores in a single, shared heap • Each Java application has its own heap – Isolation – But a JVM crash will break this isolation • JVM heaps always implement garbage collection mechanisms COMP 144 Programming Language Concepts Felix Hernandez-Campos 19
Heap Monolithic Object Representation COMP 144 Programming Language Concepts Felix Hernandez-Campos 20
The Heap Splitted Object Representation COMP 144 Programming Language Concepts Felix Hernandez-Campos 21
Example • Heap. Of. Fish – http: //www. artima. com/insidejvm/applets/Heap. Of. Fish. htm l COMP 144 Programming Language Concepts Felix Hernandez-Campos 22
The Heap Memory/Speed Tradeoff COMP 144 Programming Language Concepts Felix Hernandez-Campos 23
The Heap Arrays as Objects COMP 144 Programming Language Concepts Felix Hernandez-Campos 24
Reading Assignment • Inside the Java 2 Virtual Machine by Bill Venners – Ch 1 – Ch 5 – Illustrations COMP 144 Programming Language Concepts Felix Hernandez-Campos 25
- Unc chapel hill computer science
- Virginia, maryland, north carolina, south carolina, georgia
- Map of north carolina and south carolina
- Maryland virginia north carolina south carolina and georgia
- Virginia, maryland, north carolina, south carolina, georgia
- Unc heme onc fellowship
- Consenso de chapel hill
- Enrolled agent chapel hill, nc
- Rituxvas
- Unc chapel hill irb
- Unc chapel hill ib credit
- Connectcarolina
- North carolina state university
- North carolina sunshine laws
- North carolina's state motto
- Nc victim assistance network
- Packingham v. north carolina
- Maryland state bird facts
- Nc presbyterian pilgrimage
- South carolina state shell
- North carolina high school athletic association
- Nc famous landmarks
- Face jugs north carolina
- Sexy north carolina girls
- North carolina relative location
- Exploring north carolina