0
JVM, Byte Codes & Languages
Agenda <ul><li>The Java Virtual Machine </li></ul><ul><ul><li>Architecture neutral </li></ul></ul><ul><ul><li>Interpreted ...
JVM: Architecture Neutral  <ul><li>Byte codes </li></ul><ul><li>Portable </li></ul><ul><li>Robust </li></ul>
JVM : Interpreted and Dynamic <ul><li>Dynamic Loading and Binding </li></ul><ul><ul><li>The Fragile Superclass Problem </l...
JVM : Secure <ul><li>Memory Allocation and Layout </li></ul><ul><li>Security Checks in the Class Loader </li></ul><ul><li>...
JVM : Multithreading <ul><li>Threads at the Java Language Level </li></ul><ul><li>Integrated Thread Synchronization </li><...
JVM : Implementations <ul><li>Java Virtual Machine Reference Implementation (Oracle) </li></ul><ul><li>Open SDK (Oracle) <...
Byte Code Manipulation <ul><li>Low Level API </li></ul><ul><ul><li>ASM (ObjectWeb) </li></ul></ul><ul><ul><li>Javassist (J...
Byte Code Manipulation: Hooks <ul><li>ClassLoader </li></ul><ul><li>java.lang.instrument: Java Agent, premain method, Clas...
New Language and DSL <ul><li>New Languages </li></ul><ul><ul><li>Clojure, Groovy, Scala, JRuby, Jython, Rhino, Ceylon, Kot...
New Language and DSL: Implementation <ul><li>Write a parser/compiler/interpreter with: </li></ul><ul><ul><li>ANTLR, JavaCC...
Questions?
Upcoming SlideShare
Loading in...5
×

JVM, byte codes & jvm languages

1,353

Published on

Published in: Technology, Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,353
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
43
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Transcript of "JVM, byte codes & jvm languages"

  1. 1. JVM, Byte Codes & Languages
  2. 2. Agenda <ul><li>The Java Virtual Machine </li></ul><ul><ul><li>Architecture neutral </li></ul></ul><ul><ul><li>Interpreted and Dynamic </li></ul></ul><ul><ul><li>Secure </li></ul></ul><ul><ul><li>Multithreading </li></ul></ul><ul><ul><li>Implementations </li></ul></ul><ul><li>Byte Code Manipulation </li></ul><ul><li>New Language and DSL </li></ul>
  3. 3. JVM: Architecture Neutral <ul><li>Byte codes </li></ul><ul><li>Portable </li></ul><ul><li>Robust </li></ul>
  4. 4. JVM : Interpreted and Dynamic <ul><li>Dynamic Loading and Binding </li></ul><ul><ul><li>The Fragile Superclass Problem </li></ul></ul><ul><ul><li>Solving the Fragile Superclass Problem </li></ul></ul><ul><ul><li>Run-time Representations </li></ul></ul>
  5. 5. JVM : Secure <ul><li>Memory Allocation and Layout </li></ul><ul><li>Security Checks in the Class Loader </li></ul><ul><li>The Byte Code Verification Process </li></ul>Bootstrap + Extension System Java Application Bootstrap + Extension System Tomcat Application Common/Shared Web App A Web App B
  6. 6. JVM : Multithreading <ul><li>Threads at the Java Language Level </li></ul><ul><li>Integrated Thread Synchronization </li></ul>
  7. 7. JVM : Implementations <ul><li>Java Virtual Machine Reference Implementation (Oracle) </li></ul><ul><li>Open SDK (Oracle) </li></ul><ul><li>JRockit (Oracle) </li></ul><ul><li>Apache Harmony (Apache) </li></ul><ul><li>IBM JVM (IBM) </li></ul><ul><li>Zing (Azul System) </li></ul><ul><li>The Da Vinci Machine (Java 7/8, Oracle) </li></ul>
  8. 8. Byte Code Manipulation <ul><li>Low Level API </li></ul><ul><ul><li>ASM (ObjectWeb) </li></ul></ul><ul><ul><li>Javassist (JBoss) </li></ul></ul><ul><ul><li>BCEL (Apache) </li></ul></ul><ul><li>High Level API </li></ul><ul><ul><li>CGLib </li></ul></ul><ul><ul><li>The Compiler API (Java 6) </li></ul></ul><ul><ul><li>AOP: Aspect J, java.lang.reflect.Proxy </li></ul></ul>
  9. 9. Byte Code Manipulation: Hooks <ul><li>ClassLoader </li></ul><ul><li>java.lang.instrument: Java Agent, premain method, ClassFileTransformer. </li></ul>
  10. 10. New Language and DSL <ul><li>New Languages </li></ul><ul><ul><li>Clojure, Groovy, Scala, JRuby, Jython, Rhino, Ceylon, Kotlin </li></ul></ul><ul><li>Domain-Specific Language </li></ul><ul><ul><li>HQL, JPQL </li></ul></ul><ul><ul><li>Drools </li></ul></ul><ul><ul><li>Custom </li></ul></ul>
  11. 11. New Language and DSL: Implementation <ul><li>Write a parser/compiler/interpreter with: </li></ul><ul><ul><li>ANTLR, JavaCC, xText, Parboiled </li></ul></ul><ul><li>Write a AST (Abstract Syntax Tree) for: </li></ul><ul><ul><li>Analysis and error reporting </li></ul></ul><ul><ul><li>Transform the AST to one target platform (SQL, Java Source Code, Byte Code). </li></ul></ul>
  12. 12. Questions?
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×