Real-World Abstract Machines

  • Peter Sestoft
Part of the Undergraduate Topics in Computer Science book series (UTICS, volume 50)


This chapter discusses some widely used real-world abstract machines.


Garbage Collection Source Language Abstract Machine Java Virtual Machine Machine Code 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    The LLVM Compiler Infrastructure. At
  2. 2.
    ASM Bytecode Manipulation Framework. At
  3. 3.
    Bebenita, M., et al.: Spur: a trace-based JIT compiler for CIL. In: Object Oriented Programming, Systems, Languages and Applications (OOPSLA), pp. 708–725. ACM, New York (2010) Google Scholar
  4. 4.
    Bertelsen, P.: Semantics of Java bytecode. Tech. rep., Royal Veterinary and Agricultural University, Denmark (1997). At
  5. 5.
    Bruneton, E.: A Java bytecode engineering library (2011). At
  6. 6.
    Bytecode Engineering Library (BCEL): Home page. At
  7. 7.
    Campbell, D.: Adventures with the garbage collector and the JIT optimizer. Blog (2007). At
  8. 8.
    Chiba, S.: Load-time structural reflection in Java. In: ECOOP 2000. Object-Oriented Programming. Lecture Notes in Computer Science, vol. 1850, pp. 313–336 (2000) CrossRefGoogle Scholar
  9. 9.
    Cohen, R.: The defensive Java virtual machine, version 0.5. Tech. rep., Computational Logic Inc., Austin, TX (1997). At
  10. 10.
    Diehl, S., Hartel, P., Sestoft, P.: Abstract machines for programming language implementation. Future Gener. Comput. Syst. 16(7), 739–751 (2000) CrossRefGoogle Scholar
  11. 11.
    Ecma International: Common Language Infrastructure (CLI). Standard ECMA-335, 5th edn. (2010). At
  12. 12.
    Gosling, J.A.: System and method for pre-verification of stack usage in bytecode program loops. US Patent 5,668,999 (1997) Google Scholar
  13. 13.
    Gough, J.: Compiling for the .Net Common Language Runtime (CLR). Prentice Hall, New York (2002) Google Scholar
  14. 14.
  15. 15.
  16. 16.
    Kotzmann, T., et al.: Design of the Java HotSpot client compiler for Java 6. ACM Trans. Archit. Code Optim. 5(1), 7:1–7:32 (2008) CrossRefGoogle Scholar
  17. 17.
    Lidin, S.: Expert .NET 2.0 IL. Assembler. Apress (2006) Google Scholar
  18. 18.
    Lindholm, T., Yellin, F., Bracha, G., Buckley, A.: The Java Virtual Machine Specification, Java Se, 7th edn. Addison-Wesley, Reading (2012). At Google Scholar
  19. 19.
    Microsoft: Microsoft Developer Network .NET Resources Web page. At
  20. 20.
    Mono project: At
  21. 21.
    Neshkov, A.: DJ Java decompiler. Web page. At
  22. 22.
    Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima (2007) Google Scholar
  23. 23.
    Parallel Virtual Machine (PVM) project. At
  24. 24.
    Roeder, L.: .NET Reflector. Homepage. At
  25. 25.
    Sanders, J., Kandrot, E.: CUDA by Example: an Introduction to General-Purpose GPU Programming. Addison-Wesley, Reading (2010) Google Scholar
  26. 26.
    Smith, J.E., Nair, R.: Virtual Machines. Versatile Platforms for Systems and Processes. Morgan Kaufmann, San Mateo (2005) MATHGoogle Scholar
  27. 27.
    Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly (2003) Google Scholar
  28. 28.
    Stärk, R., Schmid, J., Börger, E.: Java and the Java Virtual Machine—Definition, Verification, Validation. Springer, Berlin (2001) MATHGoogle Scholar
  29. 29.
    Suganuma, T., et al.: Overview of the IBM Java just-in-time compiler. IBM Syst. J. 39(1), 175–193 (2000) MathSciNetCrossRefGoogle Scholar
  30. 30.
    aJile Systems: Homepage. At
  31. 31.
    Gnu.bytecode Bytecode Generation Tools: Home Page. At

Copyright information

© Springer-Verlag London 2012

Authors and Affiliations

  • Peter Sestoft
    • 1
  1. 1.IT University of CopenhagenCopenhagenDenmark

Personalised recommendations