Leveraging Sequential Computation for Programming Efficient and Reliable Distributed Systems

Authors Ivan Kuraj, Armando Solar-Lezama

Thumbnail PDF


  • Filesize: 466 kB
  • 15 pages

Document Identifiers

Author Details

Ivan Kuraj
Armando Solar-Lezama

Cite AsGet BibTex

Ivan Kuraj and Armando Solar-Lezama. Leveraging Sequential Computation for Programming Efficient and Reliable Distributed Systems. In 2nd Summit on Advances in Programming Languages (SNAPL 2017). Leibniz International Proceedings in Informatics (LIPIcs), Volume 71, pp. 7:1-7:15, Schloss Dagstuhl – Leibniz-Zentrum für Informatik (2017)


While sequential programs represent a simple and natural form for expressing functionality, corresponding distributed implementations get considerably more complex. We examine the possibility of using the sequential computation model for programming distributed systems and requirements for making that possible. The benefits of such an approach include easier specification and reasoning about behaviors in the system, as well as a possibility to directly reuse existing techniques for checking correctness and optimization of sequential programs to produce efficient and reliable distributed implementations.
  • distributed systems
  • sequential computation
  • verification


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


  1. Gul Agha. Actors: a Model of Concurrent Computation in Distributed Systems. MIT Press, 1986. Google Scholar
  2. Henri E. Bal, Jennifer G. Steiner, and Andrew S. Tanenbaum. Programming languages for distributed computing systems. ACM Computing Surveys, 1989. Google Scholar
  3. Ioana Baldini, Paul Castro, Perry Cheng, Stephen Fink, Vatche Ishakian, Nick Mitchell, Vinod Muthusamy, Rodric Rabbah, and Philippe Suter. Cloud-native, event-based programming for mobile applications. In MOBILESoft, 2016. Google Scholar
  4. Philip A. Bernstein and Nathan Goodman. Concurrency Control in Distributed Database Systems. ACM Computing Surveys, 1981. Google Scholar
  5. Jean-Pierre Briot, Rachid Guerraoui, and Klaus-Peter Lohr. Concurrency and Distribution in Object-oriented Programming. ACM Computing Surveys, 1998. Google Scholar
  6. Philippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, Vivek Sarkar, Philippe Charles, Christian Grothoff, Vijay Saraswat, Christopher Donawa, Allan Kielstra, Kemal Ebcioglu, Christoph von Praun, and Vivek Sarkar. X10: an object-oriented approach to non-uniform cluster computing. In OOPSLA, 2005. Google Scholar
  7. Adam Chlipala. Ur/Web: A simple model for programming the Web. In POPL, 2015. Google Scholar
  8. Ezra Cooper, Sam Lindley, Philip Wadler, and Jeremy Yallop. Links: Web Programming Without Tiers. In FMCO. 2007. Google Scholar
  9. Evan Czaplicki and Stephen Chong. Asynchronous Functional Reactive Programming for GUIs. In PLDI, 2013. Google Scholar
  10. Mattias De Wael, Stefan Marr, Bruno De Fraine, Tom Van Cutsem, and Wolfgang De Meuter. Partitioned Global Address Space Languages. ACM Computing Surveys, 2015. Google Scholar
  11. Joscha Drechsler, Guido Salvaneschi, Ragnar Mogk, and Mira Mezini. Distributed REScala: An Update Algorithm for Distributed Reactive Programming. In OOPSLA, 2014. Google Scholar
  12. Paul T. Graunke, Shriram Krishnamurthi, Steve Van Der Hoeven, and Matthias Felleisen. Programming the Web with High-Level Programming Languages. ESOP, 2001. Google Scholar
  13. Philipp Haller and Martin Odersky. Scala Actors: Unifying thread-based and event-based programming. Theoretical Computer Science, 2009. Google Scholar
  14. Maurice P. Herlihy and Jeannette M. Wing. Linearizability: a correctness condition for concurrent objects. ACM Transactions on Programming Languages and Systems, 1990. Google Scholar
  15. Carl Hewitt, Peter Bishop, and Richard Steiger. A universal modular ACTOR formalism for artificial intelligence. In IJCAI, 1973. Google Scholar
  16. K. R. Jayaram and Patrick Eugster. Program analysis for event-based distributed systems. In DEBS, 2011. Google Scholar
  17. JMacroRPC - reactive client/server web programming. URL: http://hackage.haskell.org/package/jmacro-rpc.
  18. Emre Kiciman, Benjamin Livshits, Madanlal Musuvathi, and Kevin C. Webb. Fluxo: a system for internet service programming by non-expert developers. In SoCC, 2010. Google Scholar
  19. Ivan Kuraj and Daniel Jackson. Exploring the role of sequential computation in distributed systems: motivating a programming paradigm shift. In Onward!, 2016. Google Scholar
  20. Yanhong A. Liu, Scott D. Stoller, Bo Lin, Michael Gorbovitski, Yanhong A. Liu, Scott D. Stoller, Bo Lin, and Michael Gorbovitski. From clarity to efficiency for distributed algorithms. In OOPSLA, 2012. Google Scholar
  21. Daniel Marino, Todd Millstein, Madanlal Musuvathi, Satish Narayanasamy, and Abhayendra Singh. The Silently Shifting Semicolon. SNAPL, 2015. Google Scholar
  22. M. Felleisen Matthews, J., R. B. Findler, P. T. Graunke, S. Krishnamurthi. Automatically Restructuring Programs for the Web. In ASE, 2003. Google Scholar
  23. Mehul Nalin Vora. Hadoop-HBase for large-scale data. In ICCSNT, 2011. Google Scholar
  24. Christopher Meiklejohn and Peter Van Roy. Lasp: A language for distributed, coordination-free programming. In PPDP, 2015. Google Scholar
  25. Meteor - pure javascript web framework. URL: http://meteor.com.
  26. Aleksandar Prokopec and Martin Odersky. Isolates, Channels, and Event Streams for Composable Distributed Programming. Onward!, 2015. Google Scholar
  27. Manuel Serrano and Gérard Berry. Multitier programming in Hop. Communications of the ACM, 2012. Google Scholar
  28. Andrew Stuart Tanenbaum and Robbert van Renesse. A critique of the remote procedure call paradigm. Technical report, Vrije Universiteit, 1987. Google Scholar