Towards native higher-order remote procedure calls

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

Authors

Colleges, School and Institutes

Abstract

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.

Details

Original languageEnglish
Title of host publicationIFL '14 Proceedings of the 26nd 2014 International Symposium on Implementation and Application of Functional Languages
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
PublisherACM

Conference

ConferenceIFL 2014 : 26th Symposium on Implementation and Application of Functional Languages
CountryUnited States
CityBoston, Massachusetts
Period1/10/143/10/14