1 / 15

cs205: engineering software university of virginia fall 2006

cs205: engineering software university of virginia fall 2006. Java Byte Codes (0xCAFEBABE). Monitor. Speakers. Network. Disk. Memory. SuperSoaker 2000. Program Execution. Reference Monitor. Program. Trusted Computing Base. Alice User. Bytecode Verifier. malcode.class

kendis
Download Presentation

cs205: engineering software university of virginia fall 2006

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. cs205: engineering software university of virginia fall 2006 Java Byte Codes (0xCAFEBABE)

  2. Monitor Speakers Network Disk Memory SuperSoaker 2000 Program Execution Reference Monitor Program

  3. Trusted Computing Base Alice User Bytecode Verifier malcode.class JVML Object Code Java Bytecode Verifier Invalid “Okay” STOP JavaVM resource

  4. Java Virtual Machine

  5. Java Virtual Machine • Small and simple to implement • All VMs will run all programs the same way • Secure

  6. Implementing the JavaVM load class into memory set the instruction pointer to point to the beginning of main do { fetch the next instruction execute that instruction } while (there is more to do); Some other issues we will talk about later... (e.g., Garbage collection – need to reclaim unused storage)

  7. Java Byte Codes • Stack-based virtual machine • Small instruction set: 202 instructions (all are 1 byte opcode + operands) • Intel x86: ~280 instructions (1 to 17 bytes long!) • Memory is typed (but imprecisely) • Every Java class file begins with magic number 3405691582 = 0xCAFEBABEin base 16

  8. Stack-Based Computation • push – put something on the top of the stack • pop – get and remove the top of the stack Stack push 2 5 2 push 3 3 add Does 2 pops, pushes sum

  9. Some Java Instructions

  10. Some Java Instructions Constant may be an int, float or String ldc “Hello” ldc 205 TheStringis really a reference to an entry in the string constant table! The strange String semantics should make more sense now.

  11. Arithmetic iconst_2 iconst_3 iadd

  12. Arithmetic

  13. Java Byte Code Instructions • 0: nop • 1-20: putting constants on the stack • 96-119: arithmetic on ints, longs, floats, doubles • What other kinds of instructions do we need?

  14. Other Instruction Classes • Control Flow (~20 instructions) • if, goto, return • Method Calls (4 instructions) • Loading and Storing Variables (65 instructions) • Creating objects (1 instruction) • Using object fields (4 instructions) • Arrays (3 instructions)

  15. Charge • Project ideas: I will get back to you by next class (or sooner) • Monday: Quiz 4 • Will cover through Friday’s lecture on the Java bytecode verifier

More Related