The Orc Programming Language

  • David Kitchin
  • Adrian Quark
  • William Cook
  • Jayadev Misra
Part of the Lecture Notes in Computer Science book series (LNCS, volume 5522)

Abstract

Orc was originally presented as a process calculus. It has now evolved into a full programming language, which we describe in this paper. The language has the structure and feel of a functional programming language, yet it handles many non-functional aspects effectively, including spawning of concurrent threads, time-outs and mutable state. We first describe the original concurrency combinators of the process calculus. Next we describe a small functional programming language that forms the core language. Then we show how the concurrency combinators of the process calculus and the functional core language are integrated seamlessly. The resulting language and its supporting libraries have proven very effective in describing typical concurrent computations; we demonstrate how several practical concurrent programming problems are easily solved in Orc.

References

  1. 1.
    Armstrong, J., Virding, R., Wikström, C., Williams, M.: Concurrent programming in ERLANG, 2nd edn. Prentice Hall International (UK) Ltd., Hertfordshire (1996)MATHGoogle Scholar
  2. 2.
    Cook, W.R., Patwardhan, S., Misra, J.: Workflow patterns in Orc. In: Ciancarini, P., Wiklicky, H. (eds.) COORDINATION 2006. LNCS, vol. 4038, pp. 82–96. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  3. 3.
    Hoare, C.A.R.: Partition: Algorithm 63, quicksort: Algorithm 64, and find: Algorithm 65. Communications of the ACM 4(7), 321–322 (1961)CrossRefGoogle Scholar
  4. 4.
    Kitchin, D., Cook, W.R., Misra, J.: A language for task orchestration and its semantic properties. In: Baier, C., Hermanns, H. (eds.) CONCUR 2006. LNCS, vol. 4137, pp. 477–491. Springer, Heidelberg (2006)CrossRefGoogle Scholar
  5. 5.
    Kitchin, D., Quark, A., Cook, W.R., Misra, J.: Orc user guide, http://orc.csres.utexas.edu/userguide/html/index.html
  6. 6.
    Lehmann, D.J., Rabin, M.O.: On the advantages of free choice: A symmetric and fully distributed solution to the dining philosophers problem. In: POPL, pp. 133–138 (1981)Google Scholar
  7. 7.
    Milner, R.: Communicating and Mobile Systems: the π-Calculus. Cambridge University Press, Cambridge (1999)MATHGoogle Scholar
  8. 8.
    Misra, J.: Computation orchestration: A basis for wide-area computing. In: Broy, M. (ed.) Proc. of the NATO Advanced Study Institute, Engineering Theories of Software Intensive Systems, NATO ASI Series, Marktoberdorf, Germany (2004)Google Scholar
  9. 9.
    Paulson, L.C.: ML for the Working Programmer. Cambridge University Press, Cambridge (1991)MATHGoogle Scholar
  10. 10.
    Pierce, B.C., Turner, D.N.: Pict: A programming language based on the pi-calculus. In: Plotkin, G., Stirling, C., Tofte, M. (eds.) Proof, Language and Interaction: Essays in Honour of Robin Milner, pp. 455–494. MIT Press, Cambridge (2000)Google Scholar
  11. 11.
    Quark, A., Kitchin, D., Cook, W.R., Misra, J.: Orc language project website, http://orc.csres.utexas.edu
  12. 12.
    Van Roy, P., Haridi, S.: Concepts, Techniques, and Models of Computer Programming. The MIT Press, Cambridge (2004)Google Scholar

Copyright information

© IFIP International Federation for Information Processing 2009

Authors and Affiliations

  • David Kitchin
    • 1
  • Adrian Quark
    • 1
  • William Cook
    • 1
  • Jayadev Misra
    • 1
  1. 1.The University of Texas, AustinUSA

Personalised recommendations