Parallel Programming in Morpho

  • Snorri Agnarsson
Part of the Lecture Notes in Computer Science book series (LNCS, volume 7133)


Morpho is a multi-paradigm programming language developed at the University of Iceland that supports parallel programming using both fibers (coroutines) and concurrently executing tasks (threads). Communication between both tasks and fibers is through channels. Morpho is open source and an alpha version is available. Morpho can be used to augment Java with massively scalable multitreading, with orders of magnitude more concurrent computations than is possible with regular Java threading. Morpho supports polymorphic modules using a unique method based on substitutions rather than parametrization.


concurrency process-oriented programming functional programming fibers 


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    Agnarsson, S., Krishnamoorthy, M.S.: Towards a Theory of Packages. SIGPLAN Notices 20, 117–130 (1985), CrossRefGoogle Scholar
  2. 2.
    Appel, A.W.: Garbage Collection Can Be Faster Than Stack Allocation. Inf. Process. Lett. 25(4), 275–279 (1987)CrossRefGoogle Scholar
  3. 3.
    Appel, A.W., Shao, Z.: An Empirical and Analytic Study of Stack vs. Heap Cost for Languages with Closures. Journal of Functional Programming 6 (1994)Google Scholar
  4. 4.
    Armstrong, J.: Programming Erlang: Software for a Concurrent World. Pragmatic Bookshelf (2007)Google Scholar
  5. 5.
    Bell, J.R.: Threaded code. Commun. ACM 16(6), 370–372 (1973)CrossRefGoogle Scholar
  6. 6.
    Dewar, R.B.K.: Indirect threaded code. Commun. ACM 18(6), 330–331 (1975)CrossRefGoogle Scholar
  7. 7.
    Haller, P., Odersky, M.: Actors that Unify Threads and Events. In: Murphy, A.L., Ryan, M. (eds.) COORDINATION 2007. LNCS, vol. 4467, pp. 171–190. Springer, Heidelberg (2007), CrossRefGoogle Scholar
  8. 8.
    Peyton-Jones, S.: Tackling the Awkward Squad: monadic input/output, concurrency, exceptions, and foreign-language calls in Haskell. In: Engineering Theories of Software Construction, pp. 47–96. Press (2002)Google Scholar
  9. 9.
    Pike, R.: The Implementation of Newsqueak. Softw., Pract. Exper. 20(7), 649–659 (1990)CrossRefGoogle Scholar
  10. 10.
    Pugh, W., Spacco, J.: MPJava: High-Performance Message Passing in Java using Java.nio. In: Rauchwerger, L. (ed.) LCPC 2003. LNCS, vol. 2958, pp. 323–339. Springer, Heidelberg (2004)CrossRefGoogle Scholar
  11. 11.
    Roscoe, A.W., Brookes, S.D., Hoare, C.A.R.: A Theory of Communicating Sequential Processes. Journal of the ACM (3), 560–599 (1984),
  12. 12.
    Stawarz, C.: Erlang vs. stackless vs. multitask: The ring benchmark showdown (September 2007), (last accessed: December 3, 2010)

Copyright information

© Springer-Verlag Berlin Heidelberg 2012

Authors and Affiliations

  • Snorri Agnarsson
    • 1
  1. 1.Faculty of Engineering and Natural SciencesUniversity of IcelandIceland

Personalised recommendations