Towards native higher-order remote procedure calls

Olle Fredriksson, Dan Ghica, Bertram Wheen

Research output: Chapter in Book/Report/Conference proceedingConference contribution

195 Downloads (Pure)


We present a new abstract machine, called DCESH, which models the execution of higher-order programs running in distributed architectures. DCESH implements a native general remote higher-order function call across node boundaries. It is a modernised version of SECD enriched with specialised communication features required for implementing the remote procedure call mechanism. The key correctness result is that the termination behaviour of the remote procedure call is indistinguishable (bisimilar) to that of a local call. The correctness proofs and the requisite definitions for DCESH and other related abstract machines are formalised using Agda. We also formalise a generic transactional mechanism for transparently handling failure in DCESHs.

We use the DCESH as a target architecture for compiling a conventional call-by-value functional language ("Floskel") which can be annotated with node information. Conventional benchmarks show that the single-node performance of Floskel is comparable to that of OCaml, a semantically similar language, and that distribution overheads are not excessive.
Original languageEnglish
Title of host publicationIFL '14 Proceedings of the 26nd 2014 International Symposium on Implementation and Application of Functional Languages
PublisherAssociation for Computing Machinery
Number of pages12
ISBN (Print)9781450332842
Publication statusPublished - 1 Oct 2014
EventIFL 2014 : 26th Symposium on Implementation and Application of Functional Languages - Boston, Massachusetts, United States
Duration: 1 Oct 20143 Oct 2014

Publication series

NameACM International Conference Proceeding Series


ConferenceIFL 2014 : 26th Symposium on Implementation and Application of Functional Languages
Country/TerritoryUnited States
CityBoston, Massachusetts


Dive into the research topics of 'Towards native higher-order remote procedure calls'. Together they form a unique fingerprint.

Cite this