Language Run-time Systems: an Overview

Author Evgenij Belikov

Thumbnail PDF


  • Filesize: 1.23 MB
  • 10 pages

Document Identifiers

Author Details

Evgenij Belikov

Cite AsGet BibTex

Evgenij Belikov. Language Run-time Systems: an Overview. In 2015 Imperial College Computing Student Workshop (ICCSW 2015). Open Access Series in Informatics (OASIcs), Volume 49, pp. 3-12, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2015)


The proliferation of high-level programming languages with advanced language features and the need for portability across increasingly heterogeneous and hierarchical architectures require a sophisticated run-time system to manage program execution and available resources. Additional benefits include isolated execution of untrusted code and the potential for dynamic optimisation, among others. This paper provides a high-level overview of language run-time systems with a focus on execution models, support for concurrency and parallelism, memory management, and communication, whilst briefly mentioning synchronisation, monitoring, and adaptive policy control. Two alternative approaches to run-time system design are presented and several challenges for future research are outlined. References to both seminal and recent work are provided.
  • Run-time Systems
  • Virtual Machines
  • Adaptive Policy Control


  • Access Statistics
  • Total Accesses (updated on a weekly basis)
    PDF Downloads


  1. J. Armstrong. Erlang - a survey of the language and its industrial applications. In Proceedings of INAP, volume 96, 1996. Google Scholar
  2. M. Arnold, S. Fink, D. Grove, M. Hind, and P. Sweeney. A survey of adaptive optimization in virtual machines. Proc. of the IEEE, 93(2):449-466, 2005. Google Scholar
  3. A. Avižienis, J.-C. Laprie, B. Randell, and C. Landwehr. Basic concepts and taxonomy of dependable and secure computing. IEEE Transactions on Dependable and Secure Computing, 1(1):11-33, 2004. Google Scholar
  4. J. Aycock. A brief history of just-in-time. ACM Computing Surveys, 35(2):97-113, 2003. Google Scholar
  5. H. Barendregt. The lambda calculus, volume 3. North-Holland Amsterdam, 1984. Google Scholar
  6. A. Baumann, P. Barham, P.-E. Dagand, T. Harris, R. Isaacs, S. Peter, T. Roscoe, A. Schüpbach, and A. Singhania. The Multikernel: a new OS architecture for scalable multicore systems. In Proc. of 22nd ACM Symp. on Operating systems principles, pages 29-44, 2009. Google Scholar
  7. E. Belikov, P. Deligiannis, P. Totoo, M. Aljabri, and H.-W. Loidl. A survey of high-level parallel programming models. Technical Report MACS-0103, Heriot-Watt University, 2013. Google Scholar
  8. R. Blumofe and C. Leiserson. Scheduling multithreaded computations by work stealing. Journal of the ACM, 46(5):720-748, September 1999. Google Scholar
  9. A. Brodtkorb, C. Dyken, T. Hagen, J. Hjelmervik, and O. Storaasli. State-of-the-art in heterogeneous computing. Scientific Programming, 18(1):1-33, May 2010. Google Scholar
  10. P. Charles, C. Grothoff, V. Saraswat, C. Donawa, A. Kielstra, K. Ebcioglu, C. von Praun, and V. Sarkar. X10: an object-oriented approach to non-uniform cluster computing. ACM SIGPLAN Notices, 40(10):519-538, 2005. Google Scholar
  11. P. Deutsch and A. Schiffman. Efficient implementation of the Smalltalk-80 system. In Proc. of the 11th ACM Symp. on Principles of Programming Languages, pages 297-302, 1984. Google Scholar
  12. P. Eugster, P. Felber, R. Guerraoui, and A.-M. Kermarrec. The many faces of publish/subscribe. ACM Computing Surveys (CSUR), 35(2):114-131, 2003. Google Scholar
  13. M. Fluet, M. Rainey, J. Reppy, and A. Shaw. Implicitly threaded parallelism in Manticore. Journal of Functional Programming, 20(5-6):537-576, 2010. Google Scholar
  14. G. Fursin, Y. Kashnikov, A. Memon, et al. Milepost GCC: Machine learning enabled self-tuning compiler. International Journal of Parallel Programming, 39(3):296-327, 2011. Google Scholar
  15. J. Gough. Stacking them up: a comparison of virtual machines. Australian Computer Science Communications, 23(4):55-61, 2001. Google Scholar
  16. W. Gropp, E. Lusk, and A. Skjellum. Using MPI: portable parallel programming with the message-passing interface, volume 1. MIT Press, 1999. Google Scholar
  17. K. Hammond. Why parallel functional programming matters: Panel statement. In Proceedings of Ada-Europe, volume 6652 of LNCS, pages 201-205, 2011. Google Scholar
  18. J. Hennessy and D. Patterson. Computer architecture: a quantitative approach. Elsevier, 5th edition, 2011. Google Scholar
  19. M. Herlihy and J. E. B. Moss. Transactional memory: Architectural support for lock-free data structures. In Proc. of the 20th Annual International Symposium on Computer Architecture (ISCA'93), pages 289-300. ACM, 1993. Google Scholar
  20. U. Hölzle and D. Ungar. A third-generation SELF implementation: reconciling responsiveness with performance. ACM SIGPLAN Notices, 29(10):229-243, 1994. Google Scholar
  21. K. Honda, N. Yoshida, and M. Carbone. Multiparty asynchronous session types. ACM SIGPLAN Notices, 43(1):273-284, 2008. Google Scholar
  22. J. Hughes. Why functional programming matters. Computer Journal, 32(2):98-107, 1989. Google Scholar
  23. J. Jaffar and J.-L. Lassez. Constraint logic programming. In Proc. of the 14th ACM SIGPLAN Symposium on Principles of programming languages, pages 111-119. ACM, 1987. Google Scholar
  24. R. Jones, A. Hosking, and E. Moss. The garbage collection handbook: the art of automatic memory management. Chapman &Hall/CRC, 2011. Google Scholar
  25. E. Lee. The problem with threads. IEEE Computer, 39(5):33-42, 2006. Google Scholar
  26. T. Lindholm, F. Yellin, G. Bracha, and A. Buckley. The Java virtual machine specification. Pearson Education, 2014. First published in 1996. Google Scholar
  27. R. Liu, K. Klues, S. Bird, S. Hofmeyr, K. Asanovic, and J. Kubiatowicz. Tessellation: Space-time partitioning in a manycore client OS. In Proceedings of the 1st USENIX Conference on Hot Topics in Parallelism, pages 10-10, 2009. Google Scholar
  28. M. Maas, K. Asanovic, T. Harris, and J. Kubiatowicz. The case for the holistic language runtime system. In First International Workshop on Rackscale Computing, 2014. Google Scholar
  29. S. Marlow, S. Peyton Jones, and S. Singh. Runtime support for multicore Haskell. ACM SIGPLAN Notices, 44(9):65-78, 2009. Google Scholar
  30. V. Mayer-Schönberger and K. Cukier. Big Data: A revolution that will transform how we live, work, and think. Houghton Mifflin Harcourt, 2013. Google Scholar
  31. J. McCarthy. History of LISP. In History of programming languages, pages 173-185, 1978. Google Scholar
  32. J. McKinna. Why dependent types matter. ACM SIGPLAN Notices, 41(1), 2006. Google Scholar
  33. E. Meijer and J. Gough. Technical overview of the Common Language Runtime. Language, 29:7, 2001. Google Scholar
  34. K. Nori, U. Amman, K. Jensen, and H.-H. Nägeli. The Pascal-P Compiler: Implementation Notes. ETH Zurich TR 10, 1974. Google Scholar
  35. J. Owens, D. Luebke, N. Govindaraju, et al. A survey of general-purpose computation on graphics hardware. Computer Graphics Forum, 26(1):80-113, 2007. Google Scholar
  36. S. Peter, A. Schüpbach, D. Menzi, and T. Roscoe. Early experience with the Barrelfish OS and the Single-Chip Cloud Computer. In MARC Symposium, pages 35-39, 2011. Google Scholar
  37. M. Richards. The portability of the BCPL compiler. Software: Practice and Experience, 1(2):135-146, 1971. Google Scholar
  38. T. Romer, D. Lee, G. Voelker, A. Wolman, W. Wong, J.-L. Baer, B. Bershad, and H. Levy. The structure and performance of interpreters. ACM SIGPLAN Not., 31(9):150-159, 1996. Google Scholar
  39. A. Silberschatz, P. Galvin, and G. Gagne. Operating system concepts. AddisonWesley, 1998. Google Scholar
  40. J. Singer. JVM versus CLR: a comparative study. In Proc. of 2nd Intl Conf. on Principles and Practice of Programming in Java, pages 167-169. Computer Science Press, 2003. Google Scholar
  41. J. Smith and R. Nair. The architecture of virtual machines. Computer, 38(5):32-38, 2005. Google Scholar
  42. P. Trinder, K. Hammond, J. Mattson Jr., A. Partridge, and S. Peyton Jones. GUM: a portable parallel implementation of Haskell. In Proc. of PLDI'96, 1996. Google Scholar
  43. J. Wielemaker, T. Schrijvers, M. Triska, and T. Lager. SWI-Prolog. Theory and Practice of Logic Programming, 12(1-2):67-96, 2012. Google Scholar