Skip to main content

Real-World Abstract Machines

  • Chapter
  • First Online:
Programming Language Concepts

Part of the book series: Undergraduate Topics in Computer Science ((UTICS))

  • 3655 Accesses

Abstract

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

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 54.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 69.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  1. aJile Systems: Homepage. http://www.ajile.com/

  2. ASM bytecode Manipulation Framework. http://asm.ow2.org/

  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 Press, New York (2010)

    Google Scholar 

  4. Bertelsen, P.: Semantics of Java bytecode. Technical report, Royal Veterinary and Agricultural University, Denmark (1997). http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.48.8315

  5. Bruneton, E.: ASM 4.0. A Java Bytecode Engineering Library (2011). http://download.forge.objectweb.org/asm/asm4-guide.pdf

  6. Bytecode Engineering Library (BCEL): Home Page. http://commons.apache.org/proper/commons-bcel/

  7. Böhm, C.: Digital computers. On encoding logical-mathematical formulas using the machine itself during program conception. Doctoral dissertation, ETH Zürich 1954. http://www.itu.dk/people/sestoft/boehmthesis/ (2016). English translation (from the French original) by Peter Sestoft. p. 50

  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)

    Google Scholar 

  9. Diehl, S., Hartel, P., Sestoft, P.: Abstract machines for programming language implementation. Fut. Gen. Comput. Syst. 16(7), 739–751 (2000)

    Article  MATH  Google Scholar 

  10. ECMA International: Common Language Infrastructure (CLI). Standard ECMA-335, 6th edn. ECMA International (2012). http://www.ecma-international.org/publications/standards/Ecma-335.htm

  11. Gnu.Bytecode Bytecode generation Tools: Home Page. http://www.gnu.org/software/kawa/

  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. Gough, J.: Compiling for the .Net Common Language Runtime (CLR). Prentice-Hall, Upper Saddle River (2002)

    Google Scholar 

  14. Javassist: Home Page. http://jboss-javassist.github.io/javassist/

  15. Kotzmann, T., et al.: Design of the Java HotSpot client compiler for Java 6. ACM Trans. Architect. Code Optim. 5(1), 7:1–7:32 (2008)

    Google Scholar 

  16. Lidin, S.: Expert .NET 2.0 IL Assembler. Apress (2006)

    Google Scholar 

  17. Lindholm, T., Yellin, F., Bracha, G., Buckley, A.: The Java Virtual Machine Specification, Java se 8 edn. Addison-Wesley, Boston (2015). http://docs.oracle.com/javase/specs/jvms/se8/jvms8.pdf

  18. Microsoft: .Net documentation. Web Page. https://docs.microsoft.com/en-us/dotnet/

  19. Mono Project: http://www.mono-project.com/

  20. Neshkov, A.: DJ Java Decompiler. Web Page. http://www.neshkov.com/

  21. Odersky, M., Spoon, L., Venners, B.: Programming in Scala. Artima Press (2007)

    Google Scholar 

  22. Parallel Virtual Machine (PVM) Project: http://www.csm.ornl.gov/pvm/

  23. Roeder, L.: .NET Reflector. Homepage. http://www.red-gate.com/products/dotnet-development/reflector/

  24. Sanders, J., Kandrot, E.: CUDA by Example: An Introduction to General-purpose GPU Programming. Addison-Wesley, Boston (2010)

    Google Scholar 

  25. Smith, J.E., Nair, R.: Virtual Machines. Versatile Platforms for Systems and Processes. Morgan Kaufmann, Burlington (2005)

    Google Scholar 

  26. Stutz, D., Neward, T., Shilling, G.: Shared Source CLI Essentials. O’Reilly (2003)

    Google Scholar 

  27. Stärk, R., Schmid, J., Börger, E.: Java and the Java Virtual Machine – Definition, Verification, Validation. Springer, Berlin (2001)

    Book  MATH  Google Scholar 

  28. Suganuma, T., et al.: Overview of the IBM Java just-in-time compiler. IBM Syst. J. 39(1), 175–193 (2000)

    Article  MathSciNet  Google Scholar 

  29. The LLVM Compiler Infrastructure. http://llvm.org/

  30. Turing, A.M.: On computable numbers, with an application to the Entscheidungsproblem. In: Proceedings of the London Mathematical Society, vol. 2 (Published 1937), vol. 42, s2–42(1), 230–265 (1937)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Peter Sestoft .

Rights and permissions

Reprints and permissions

Copyright information

© 2017 Springer International Publishing AG

About this chapter

Cite this chapter

Sestoft, P. (2017). Real-World Abstract Machines. In: Programming Language Concepts. Undergraduate Topics in Computer Science. Springer, Cham. https://doi.org/10.1007/978-3-319-60789-4_9

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-60789-4_9

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-60788-7

  • Online ISBN: 978-3-319-60789-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics