A Parallel Abstract Machine for the RPC Calculus

  • Kensuke Narita
  • Shin-ya Nishizaki
Part of the Communications in Computer and Information Science book series (CCIS, volume 253)


Cooper and Wadler introduced the RPC calculus, which is obtained by incorporating a mechanism for remote procedure calls (RPC) into the lambda calculus. The location where a caller’s code is executed is designated in a lambda abstraction in the RPC calculus. Nishizaki et al. proposed a simplified abstract machine for the lambda calculus, known as a Simple Abstract Machine (SAM). The configuration of an SECD machine is a quadruple of data sequences: Stack, Environment, Code, and Dump. In contrast, the SAM configuration is a double of data sequences: Stack and Code. In this paper, we introduce a SAM-based abstract machine for the RPC calculus, called a Location-aware Simple Abstract Machine (LSAM). This machine makes it possible to model parallelism more clearly. We provide a translation of the RPC calculus into LSAM, and prove a correctness theorem for the translation. We then show that the translation can be extended to allow parallel execution in LSAM.


Operational Semantic Parallel Execution Derivation Tree Abstract Machine Reduction Sequence 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Amadio, R.M., Curien, P.L.: Domains and Lambda-Calculi. Cambridge University Press (1998)Google Scholar
  2. 2.
    Birrell, A.D., Nelson, B.J.: Implementing remote procedure calls. ACM Transactions on Computer Systems 2(1), 39–59 (1984)CrossRefGoogle Scholar
  3. 3.
    Cooper, E., Wadler, P.: The RPC calculus. In: Proceedings of the 11th ACM SIGPLAN Conference on Principles and Practice of Declarative Programming, PPDP 2009, pp. 231–242 (2009)Google Scholar
  4. 4.
    Cousineau, G., Curien, P.L., Mauny, M.: The categorical abstract machine. Science of Computer Programming 8(2), 173–202 (1987)MathSciNetCrossRefzbMATHGoogle Scholar
  5. 5.
    Ganz, S.E., Friedman, D.P., Wand, M.: Trampolined style. In: Proceedings of the 4th ACM SIGPLAN International Conference on Functional Programming, ICFP 1999, pp. 18–27 (1999)Google Scholar
  6. 6.
    Landin, P.J.: The mechanical evaluation of expressions. The Computer Journal 6(4), 308–320 (1964)CrossRefzbMATHGoogle Scholar
  7. 7.
    Narita, K., Nishizaki, S., Mizuno, T.: A Simple Abstract Machine for Functional First-class Continuations. In: Proceedings of International Symposium on Communications and Information Technologies 2010, pp. 111–114. IEEE (2010)Google Scholar
  8. 8.
    Nishizaki, S.: Polymorphic Environment Calculus and Its Type Inference Algorithm. Higher-Order and Symbolic Computation 13(3) (2000)Google Scholar
  9. 9.
    Nishizaki, S.: Programs with Continuations and Linear Logic. Science of Computer Programming 21(2), 165–190 (1993)MathSciNetCrossRefzbMATHGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2011

Authors and Affiliations

  • Kensuke Narita
    • 1
  • Shin-ya Nishizaki
    • 1
  1. 1.Department of Computer ScienceTokyo Institute of TechnologyMeguro-kuJapan

Personalised recommendations