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.


Prefix Dispatch Suffix Ruby Actual Element 


  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