Chapter 9: A Model of Functional Programming with Dynamic Compilation and Optimization

Grabmüller, Martin
September 2007
Trends in Functional Programming Volume 7;2007, Vol. 7, p145
Book Chapter
Modern virtual machines for object-oriented languages use dynamic (run-time) compilation in order to ensure fast execution while maintaining security and portability of program code. Several virtual machine implementations using this compilation model have been implemented and are successfully used in practice, but have rarely been used in the implementation of functional languages. This paper presents a framework for describing dynamically optimizing virtual machines in the context of purely functional programming languages.


Related Articles

  • Chapter 5: Static Single Information from a Functional Perspective. Singer, Jeremy // Trends in Functional Programming Volume 4;2005, Vol. 4, p63 

    Static single information form is a natural extension of the well-known static single assignment form. It is a program intermediate representation used in optimising compilers for imperative programming languages. In this paper we show how a program expressed in static single information form...

  • Virtual Machine Placement Based on Disk I/O Load in Cloud. Noumankhan Sayeedkhan, Pathan; Balaji S., Shetty // International Journal of Computer Science & Information Technolo;2014, Vol. 5 Issue 4, p5477 

    In cloud Virtualization allows to consolidate the services onto a lesser number of physical servers than originally required. The virtual machine is one of the most commonly used resource carriers in which business services are encapsulated. Virtual machine placement optimization, i.e., finding...

  • The Runtime Performance of invokedynamic: An Evaluation with a Java Library. Ortin, Francisco; Conde, Patricia; Fernandez-Lanvin, Daniel; Izquierdo, Raul // IEEE Software;Jul2014, Vol. 31 Issue 4, p82 

    The Java 7 platform includes the invokedynamic opcode in its virtual machine, a feature that lets programmers define, and dynamically change, the linkage of method call sites and thereby maintain platform optimizations. The authors developed a library that lets developers use this new JVM...

  • Technical Note: Evaluating Java Development Kits for Agent-Based Modeling. Weidmann, Nils B.; Girardin, Luc // Journal of Artificial Societies & Social Simulation;Mar2005, Vol. 8 Issue 2, p1 

    In this article, the authors present experiments assessing the performance of different Java Development Kits (JDKs) with respect to agent-based models. They measure the execution time of two prototypical agent-based models written in Java computer language under different JDKs and operating...

  • A Reflective Implementation of Java Multi-Methods. Forax, Rémi; Duris, Etienrie; Roussel, Gilles // IEEE Transactions on Software Engineering;Dec2004, Vol. 30 Issue 12, p1055 

    In Java, method implementations are chosen at runtime by late-binding with respect to the runtime class of just the receiver argument. However, in order to simplify many programming designs, late-binding with respect to the dynamic type of all arguments is sometimes desirable. This behavior,...

  • Beyond contracts for concurrency. Ostroff, Jonathan; Torshizi, Faraz; Huang, Hai; Schoeller, Bernd // Formal Aspects of Computing;Aug2009, Vol. 21 Issue 4, p319 

    SCOOP is a concurrent programming language with a new semantics for contracts that applies equally well in concurrent and sequential contexts. SCOOP eliminates race conditions and atomicity violations by construction. However, it is still vulnerable to deadlocks. In this paper we describe how...

  • Localized model transformations for building large-scale transformations. Etien, Anne; Muller, Alexis; Legrand, Thomas; Paige, Richard // Software & Systems Modeling;Jul2015, Vol. 14 Issue 3, p1189 

    Model-driven engineering (MDE) exploits well-defined, tool-supported modelling languages and operations applied to models created using these languages. Model transformation is a critical part of the use of MDE. It has been argued that transformations must be engineered systematically,...

  • Exploring Parafunctional Programming: Separating the What from the How. Hudak, Paul // IEEE Software;Jan88, Vol. 5 Issue 1, p54 

    Presents a method for parafunctional programming in the United States. Difficulty of programmers of creating design decisions on traditional programming language; Characterization of parafunctional behavior; Variety of design choices.

  • How functional programming mattered. Zhenjiang Hu; Hughes, John; Meng Wang // National Science Review;2015, Vol. 2 Issue 3, p349 

    In 1989 when functional programming was still considered a niche topic, Hughes wrote a visionary paper arguing convincingly 'why functional programming matters'. More than two decades have passed. Has functional programming really mattered? Our answer is a resounding 'Yes!'. Functional...


Read the Article


Sorry, but this item is not currently available from your library.

Try another library?
Sign out of this library

Other Topics