skip to main content
research-article
Open Access

A history of the Oz multiparadigm language

Published:12 June 2020Publication History
Skip Abstract Section

Abstract

Oz is a programming language designed to support multiple programming paradigms in a clean factored way that is easy to program despite its broad coverage. It started in 1991 as a collaborative effort by the DFKI (Germany) and SICS (Sweden) and led to an influential system, Mozart, that was released in 1999 and widely used in the 2000s for practical applications and education. We give the history of Oz as it developed from its origins in logic programming, starting with Prolog, followed by concurrent logic programming and constraint logic programming, and leading to its two direct precursors, the concurrent constraint model and the Andorra Kernel Language (AKL). We give the lessons learned from the Oz effort including successes and failures and we explain the principles underlying the Oz design. Oz is defined through a kernel language, which is a formal model similar to a foundational calculus, but that is designed to be directly useful to the programmer. The kernel language is organized in a layered structure, which makes it straightforward to write programs that use different paradigms in different parts. Oz is a key enabler for the book Concepts, Techniques, and Models of Computer Programming (MIT Press, 2004). Based on the book and the implementation, Oz has been used successfully in university-level programming courses starting from 2001 to the present day.

References

  1. Harold Abelson, Gerald Jay Sussman, and Julie Sussman. 1996. Structure and Interpretation of Computer Programs, Second Edition. The MIT Press, Cambridge, Mass.Google ScholarGoogle Scholar
  2. Hassan Aït-Kaci and Andreas Podelski. 1993. Towards a Meaning of LIFE. Journal of Logic Programming 16, 3-4 (July-August), 195–234.Google ScholarGoogle ScholarCross RefCross Ref
  3. Torsten Anders. 2007. Composing Music by Composing Rules: Design and Usage of a Generic Music Constraint System. Ph.D. Dissertation. Queen’s University Belfast(Feb.).Google ScholarGoogle Scholar
  4. Robert L. Ashenhurst and Susan Graham (Eds.). 1987. ACM Turing Award Lectures: The First Twenty Years. ACM Press.Google ScholarGoogle Scholar
  5. Tomas Axling, Seif Haridi, and Lennart Fáhlen. 1996. Virtual reality programming in Oz. In Virtual Environments and Scientific Visualization (Eurographics). Springer-Verlag Wien(May).Google ScholarGoogle Scholar
  6. Isabelle Cambron and Mathieu Cuvelier. 2006. La programmation en première année basée sur l’enrichissement progressif de micromondes multi-agents (First-year programming based on progressive enrichment of multi-agent microworlds). Master’s thesis. ICTEAM Institute, Université catholique de Louvain(May). https://www.info.ucl.ac.be/~pvr/micromondes.html In French.Google ScholarGoogle Scholar
  7. Luca Cardelli. 1995. A language with distributed scope. ACM Transactions on Computer Systems 8, 1 (Jan.), 27–59.Google ScholarGoogle Scholar
  8. Keith L. Clark. 1987. PARLOG: the language and its applications. In Proceedings of the Conference on Parallel Architectures and Languages Europe (PARLE). Volume II: Parallel Languages (Lecture Notes in Computer Science), A. J. Nijman J. W. de Bakker and P. C. Treleaven (Eds.), Vol. 259. Springer Verlag, Eindhoven, The Netherlands(June), 30–53.Google ScholarGoogle Scholar
  9. Raphaël Collet. 2007. The Limits of Network Transparency in a Distributed Programming Language. Ph.D. Dissertation. Université catholique de Louvain(Dec.).Google ScholarGoogle Scholar
  10. Alain Colmerauer. 1982. PROLOG II Reference Manual and Theoretical Model. Technical Report. Université Aix-Marseille II, Groupe d’Intelligence Artificielle(Oct.).Google ScholarGoogle Scholar
  11. Alain Colmerauer and Philippe Roussel. 1996. The Birth of Prolog. In History of Programming Languages–II. 331–367.Google ScholarGoogle Scholar
  12. Sébastien Combéfis, Adrien Bibal, and Peter Van Roy. 2014. Recasting a Traditional Course into a MOOC by Means of a SPOC. In Second MOOC European Stakeholders Summit (EMOOCS’14). Lausanne, Switzerland(Feb.).Google ScholarGoogle Scholar
  13. Sébastien Combéfis and Peter Van Roy. 2015. Three-Step Transformation of a Traditional University Course into a MOOC: A LouvainX Experience. In Third MOOC European Stakeholders Summit (EMOOCS’15). Mons, Belgium(May), 76–80.Google ScholarGoogle Scholar
  14. Benoit Daloze. 2014. Extending Mozart 2 to Support Multicore Processors. Master’s thesis. Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google ScholarGoogle Scholar
  15. Charles Darwin. 1859. On the Origin of Species by means of Natural Selection, or the Preservation of Favoured Races in the Struggle for Life. Harvard University Press 1964 (originally John Murray, London, 1859).Google ScholarGoogle Scholar
  16. Gregory de le Vingne, Maxime Romain, and Cécile Toint. 2007. La programmation en première année basée sur l’enrichissement progressif de micromondes multi-agents, partie II (First-year programming based on progressive enrichment of multi-agent microworlds, part II). Master’s thesis. ICTEAM Institute, Université catholique de Louvain(Aug.). https://www.info.ucl. ac.be/~pvr/micromondes.html In French.Google ScholarGoogle Scholar
  17. Guillaume Derval, Anthony Gégo, Pierre Reinbold, Benjamin Frantzen, and Peter Van Roy. 2015. Automatic Grading of Programming Exercises in a MOOC Using the INGInious Platform. In Third MOOC European Stakeholders Summit (EMOOCS’15). Mons, Belgium(May), 86–91.Google ScholarGoogle Scholar
  18. Yves Deville. 2005. Book Review: Concepts, Techniques, and Models of Computer Programming. Journal of Theory and Practice of Logic Programming 5, 4-5 (July), 595–600.Google ScholarGoogle Scholar
  19. Sébastien Doeraene. 2011. Ozma: Extending Scala with Oz Concurrency. Master’s thesis. Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google ScholarGoogle Scholar
  20. Sébastien Doeraene and Peter Van Roy. 2013. A New Concurrency Model for Scala Based on a Declarative Dataflow Core. In Fourth Annual Scala Workshop (colocated with ECOOP, ECMFA, and ECSA). Montpellier, France(July).Google ScholarGoogle ScholarDigital LibraryDigital Library
  21. Denys Duchier, Claire Gardent, and Joachim Niehren. 1999. Concurrent Constraint Programming in Oz for Natural Language Processing. Programming Systems Lab and Department of Computational Linguistics, Universität des Saarlandes.Google ScholarGoogle Scholar
  22. Denys Duchier, Leif Kornstaedt, Christian Schulte, and Gert Smolka. 1998. A Higher-order Module Discipline with Separate Compilation, Dynamic Linking, and Pickling. Technical Report. Programming Systems Lab, DFKI and Universität des Saarlandes.Google ScholarGoogle Scholar
  23. Matthias Felleisen. 1990. On the Expressive Power of Programming Languages. In 3rd European Symposium on Programming (ESOP 1990). (May), 134–151.Google ScholarGoogle Scholar
  24. François Fonteyn. 2014. Comprehensions in Mozart. Master’s thesis. ICTEAM Institute, Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google ScholarGoogle Scholar
  25. Tetsuro Fujise, Takashi Chikayama, Kazuaki Rokusawa, and Akihiko Nakase. 1994. KLIC: A Portable Implementation of KL1. In Fifth Generation Computing Systems (FGCS ’94). (Dec.), 66–79.Google ScholarGoogle Scholar
  26. Peter Gammie. 2009. Book Review: Concepts, Techniques, and Models of Computer Programming. Journal of Functional Programming 19, 2 (March).Google ScholarGoogle Scholar
  27. Donatien Grolaux. 1998. Editeur graphique réparti basé sur un modèle transactionnel (A distributed graphic editor based on a transactional model). Master’s thesis. Université catholique de Louvain(June). In French.Google ScholarGoogle Scholar
  28. Donatien Grolaux, Peter Van Roy, and Jean Vanderdonckt. 2001. QTk: A Mixed Declarative/Procedural Approach for Designing Executable User Interfaces. In IFIP International Conference on Engineering for Human-Computer Interaction (EHCI 2001) (Lecture Notes in Computer Science), Vol. 2254. Springer Verlag, 109–110.Google ScholarGoogle Scholar
  29. Donatien Grolaux, Peter Van Roy, and Jean Vanderdonckt. 2002. FlexClock: A Plastic Clock Written in Oz with the QTk Toolkit. In 1st International Workshop on Task Models and Diagrams for User Interface Design (TAMODIA 2002). Bucharest, Romania(July).Google ScholarGoogle Scholar
  30. Seif Haridi, Peter Van Roy, Per Brand, Michael Mehl, Ralf Scheidhauer, and Gert Smolka. 1999. Efficient Logic Variables for Distributed Computing. ACM Transactions on Programming Languages and Systems 21, 3 (May), 569–626.Google ScholarGoogle ScholarDigital LibraryDigital Library
  31. Seif Haridi, Peter Van Roy, Per Brand, and Christian Schulte. 1998. Programming Languages for Distributed Applications. New Generation Computing 16, 3 (May), 223–261.Google ScholarGoogle ScholarDigital LibraryDigital Library
  32. Seif Haridi, Peter Van Roy, and Gert Smolka. 1997. An Overview of the Design of Distributed Oz. In Proceedings of the 2nd International Symposium on Parallel Symbolic Computation (PASCO 97). ACM(July). Early version appeared in Workshop on Multi-Paradigm Logic Programming, JICSLP 96.Google ScholarGoogle ScholarDigital LibraryDigital Library
  33. Martin Henz. 1997a. Objects for Concurrent Constraint Programming. The Kluwer International Series in Engineering and Computer Science, Vol. 426. Kluwer Academic Publishers, Boston(Oct.).Google ScholarGoogle Scholar
  34. Martin Henz. 1997b. Objects in Oz. Ph.D. Dissertation. Fachbereich Informatik, Universität des Saarlandes, Saarbrücken, Germany(June).Google ScholarGoogle Scholar
  35. Martin Henz. 1999. Constraint-Based Round Robin Tournament Planning. In International Conference on Logic Programming (ICLP 99). The MIT Press, Las Cruces, New Mexico, 545–557.Google ScholarGoogle Scholar
  36. Martin Henz. 2000. Friar Tuck–A Constraint-Based Tournament-Scheduling Tool. IEEE Intelligent Systems (Jan./Feb.), 5–7.Google ScholarGoogle Scholar
  37. Martin Henz. 2001. Scheduling a Major College Basketball Conference–Revisited. Journal of Operations Research 49, 1 (Feb.), 163–168.Google ScholarGoogle ScholarDigital LibraryDigital Library
  38. Charles Antony Richard Hoare. 1987. The Emperor’s Old Clothes. See [ Ashenhurst and Graham 1987 ]. 1980 Turing Award Lecture.Google ScholarGoogle Scholar
  39. Institute for New Generation Computer Technology (Ed.). 1992. Fifth Generation Computer Systems 1992. Vol. 1,2. Ohmsha Ltd. and IOS Press. ISBN 4-274-07724-1.Google ScholarGoogle Scholar
  40. Joxan Jaffar and Jean-Louis Lassez. 1987. Constraint logic programming. In 14th ACM Symposium on Principles of Programming Languages (POPL 87). (Jan.), 111–119.Google ScholarGoogle ScholarDigital LibraryDigital Library
  41. Joxan Jaffar, Spiro Michaylov, Peter J. Stuckey, and Roland H. C. Yap. 1992. The CLP(R) Language and System. ACM Transactions on Programming Languages and Systems 14, 3 (July).Google ScholarGoogle ScholarDigital LibraryDigital Library
  42. Sverker Janson. 1994. AKL–A Multiparadigm Programming Language. Ph.D. Dissertation. Uppsala University and SICS.Google ScholarGoogle Scholar
  43. Sverker Janson and Seif Haridi. 1991. Programming Paradigms of the Andorra Kernel Language. In 1991 International Symposium on Logic Programming (ISLP). The MIT Press, San Diego, CA, USA(Oct.), 167–183.Google ScholarGoogle Scholar
  44. Sverker Janson, Johan Montelius, and Seif Haridi. 1993. Ports for objects in concurrent logic programs. In Research Directions in Concurrent Object-Oriented Programming. The MIT Press(July), 211–231.Google ScholarGoogle Scholar
  45. Gilles Kahn and David B. MacQueen. 1977. Coroutines and Networks of Parallel Processes. In IFIP Congress. 993–998.Google ScholarGoogle Scholar
  46. B. W. Kernighan and D. M. Ritchie. 1988. The C Programming Language (ANSI C), 2nd edition. Prentice Hall, Englewood Cliffs, NJ.Google ScholarGoogle Scholar
  47. Erik Klintskog. 2005. Generic Distribution Support for Programming Systems. Ph.D. Dissertation. KTH and SICS, Stockholm, Sweden(April).Google ScholarGoogle Scholar
  48. Stelios Lelis, Petros Kavassalis, Jakka Sairamesh, Seif Haridi, Fredrik Holmgren, Mahmoud Rafea, and Antonis Hatistamatiou. 2001. Regularities in the formation and evolution of information cities. In Second Kyoto Workshop on Digital Cities (Lecture Notes in Computer Science), Vol. 2362. Springer Verlag, 41–55.Google ScholarGoogle Scholar
  49. Michael Lienhardt, Alan Schmitt, and Jean-Bernard Stefani. 2007. Oz/K: A Kernel Language for Component-Based Open Programming. In 6th International Conference on Generative Programming and Component Engineering (GPCE ’07). (Oct.), 43–52.Google ScholarGoogle ScholarDigital LibraryDigital Library
  50. Peter S. Magnusson, Magnus Christensson, Jesper Eskilson, Daniel Forsgren, Gustav Hållberg, Johan Högberg, Fredrik Larsson, Andreas Moestedt, and Bengt Werner. 2002. Simics: A Full System Simulation Platform. IEEE Computer (Feb.), 50–58.Google ScholarGoogle Scholar
  51. Peter S. Magnusson, Fredrik Larsson, Andreas Moestedt, Bengt Werner, Fredrik Dahlgren, Magnus Karlson, Fredrik Lundholm, Jim Nilsson, Per Stenström, and Håkan Grahn. 1998. SimICS/sun4m: A Virtual Workstation. In USENIX Annual Technical Conference. (June).Google ScholarGoogle Scholar
  52. Michael Maher. 1987. Logic Semantics for a Class of Committed-Choice Programs. In Fourth International Conference on Logic Programming (ICLP 87). The MIT Press, Melbourne, Australia(May), 858–876.Google ScholarGoogle Scholar
  53. Kim Marriott, Peter J. Stuckey, and Mark Wallace. 2006. Constraint Logic Programming. Vol. 2. Chapter 12, 409–452. Foundations of Artificial Intelligence, Handbook of Constraint Programming.Google ScholarGoogle Scholar
  54. Scott McGlashan and Tomas Axling. 1996. Talking to Agents in Virtual Worlds. In Third UK VR-SIG Conference. Leicester, UK.Google ScholarGoogle Scholar
  55. Michael Mehl. 1999. The Oz Virtual Machine–Records, Transients, and Deep Guards. Ph.D. Dissertation. Fachbereich Informatik, Universität des Saarlandes, Saarbrücken, Germany(May).Google ScholarGoogle Scholar
  56. Denis Michiels and Stewart MacKenzie. 2014. Fractalide: HyperCard on Flow-Based Programming. Master’s thesis. ICTEAM Institute, Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google ScholarGoogle Scholar
  57. George L. Nemhauser and Michael A. Trick. 1998. Scheduling a major college basketball conference. Journal of Operations Research 46, 1 (Feb.), 1–8.Google ScholarGoogle ScholarDigital LibraryDigital Library
  58. Joachim Niehren, Jan Schwinghammer, and Gert Smolka. 2006. A Concurrent Lambda Calculus with Futures. Journal of Theoretical Computer Science 364, 338–356.Google ScholarGoogle ScholarDigital LibraryDigital Library
  59. Chris Okasaki. 1998. Purely Functional Data Structures. Cambridge University Press, Cambridge, UK.Google ScholarGoogle ScholarDigital LibraryDigital Library
  60. Richard O’Keefe. 1990. The Craft of Prolog. The MIT Press.Google ScholarGoogle Scholar
  61. Arthur Paquot and Nathan Magrofuoco. 2016. CorrectOz: Recognizing Common Mistakes in the Programming Exercises of a Computer Science MOOC. Master’s thesis. ICTEAM Institute, Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google ScholarGoogle Scholar
  62. Konstantin Popov, Mahmoud Rafea, Fredrik Holmgren, Per Brand, Vladimir Vlassov, and Seif Haridi. 2003. Parallel Agent-Based Simulation on a Cluster of Workstations. Parallel Processing Letters 13, 4, 629–641.Google ScholarGoogle ScholarCross RefCross Ref
  63. Dennis M. Ritchie. 1987. Reflections on Software Research. See [ Ashenhurst and Graham 1987 ]. 1983 Turing Award Lecture.Google ScholarGoogle Scholar
  64. Roberto Roverso, Sameh El-Ansary, and Seif Haridi. 2009. NATCracker: NAT Combinations Matter. In 18th IEEE International Conference on Computer Communications and Networks. IEEE Computer Society, San Francisco, CA(Aug.).Google ScholarGoogle Scholar
  65. Vijay Saraswat and Martin Rinard. 1990. Concurrent Constraint Programming. In 17th ACM Symposium on Principles of Programming Languages (POPL 90). San Francisco, CA(Jan.), 232–245.Google ScholarGoogle Scholar
  66. Vijay A. Saraswat. 1993. Concurrent Constraint Programming. The MIT Press.Google ScholarGoogle Scholar
  67. Ralf Scheidhauer. 1998. Design, Implementierung und Evaluierung einer virtuellen Maschine für Oz (Design, Implementation, and Evaluation of a Virtual Machine for Oz). Ph.D. Dissertation. Fachbereich Informatik, Universität des Saarlandes, Saarbrücken, Germany(Dec.). In German.Google ScholarGoogle Scholar
  68. Christian Schulte. 1997a. Oz Explorer: A Visual Constraint Programming Tool. In 14th International Conference on Logic Programming (ICLP 97), Lee Naish (Ed.). The MIT Press, Leuven, Belgium(July), 286–300.Google ScholarGoogle Scholar
  69. Christian Schulte. 1997b. Programming Constraint Inference Engines. In 3rd International Conference on Principles and Practice of Constraint Programming (Lecture Notes in Computer Science), Gert Smolka (Ed.), Vol. 1330. Springer Verlag, Schloß Hagenberg, Austria(Oct.), 519–533.Google ScholarGoogle Scholar
  70. Christian Schulte. 1999. Comparing Trailing and Copying for Constraint Programming. In 1999 International Conference on Logic Programming (ICLP 99), Danny De Schreye (Ed.). The MIT Press, Las Cruces, NM, USA(Nov.), 275–289.Google ScholarGoogle Scholar
  71. Christian Schulte. 2000a. Programming Constraint Inference Services. Ph.D. Dissertation. Universität des Saarlandes, Fachbereich Informatik, Saarbrücken, Germany.Google ScholarGoogle Scholar
  72. Christian Schulte. 2000b. Programming Deep Concurrent Constraint Combinators. In Practical Aspects of Declarative Languages, Second International Workshop, PADL 2000 (Lecture Notes in Computer Science), Enrico Pontelli and Vítor Santos Costa (Eds.), Vol. 1753. Springer Verlag, Boston, MA, USA(Jan.), 215–229.Google ScholarGoogle Scholar
  73. Christian Schulte. 2002. Programming Constraint Services: High-Level Programming of Standard and New Constraint Services. Lecture Notes in Artificial Intelligence, Vol. 2302. Springer Verlag, Berlin, Germany. Ph.D. dissertation, Universität des Saarlandes.Google ScholarGoogle Scholar
  74. Christian Schulte and Gert Smolka. 1994. Encapsulated Search for Higher-order Concurrent Constraint Programming. In International Symposium on Logic Programming, Maurice Bruynooghe (Ed.). The MIT Press, Ithaca, NY, USA(Nov.), 505–520.Google ScholarGoogle Scholar
  75. Christian Schulte, Gert Smolka, and Jörg Würtz. 1994. Encapsulated Search and Constraint Programming in Oz. In Second Workshop on Principles and Practice of Constraint Programming (Lecture Notes in Computer Science), Alan H. Borning (Ed.), Vol. 874. Springer Verlag, Orcas Island, WA, USA(May), 134–150.Google ScholarGoogle Scholar
  76. Ehud Shapiro. 1983. A subset of Concurrent Prolog and its Interpreter. Technical Report TR-003. Institute for New Generation Computer Technology (ICOT), Cambridge, Mass.(Jan.).Google ScholarGoogle Scholar
  77. Ehud Shapiro (Ed.). 1987. Concurrent Prolog: Collected Papers. Vol. 1-2. The MIT Press, Cambridge, Mass.Google ScholarGoogle ScholarDigital LibraryDigital Library
  78. Ehud Shapiro. 1989. The Family of Concurrent Logic Programming Languages. Comput. Surveys 21, 3 (Sept.), 413–510.Google ScholarGoogle ScholarDigital LibraryDigital Library
  79. Jeremy G. Siek and Walid Taha. 2006. Gradual typing for functional languages. In Scheme and Functional Programming Workshop (SFP). (Sept.), 81–92.Google ScholarGoogle Scholar
  80. Jörg Siekmann, Christoph Benzmüller, and Serge Autexier. 2006. Computer Supported Mathematics with ΩMEGA. Journal of Applied Logic 4, 533–559.Google ScholarGoogle ScholarCross RefCross Ref
  81. Gert Smolka. 1995a. The Definition of Kernel Oz. In Constraints: Basics and Trends. Lecture Notes in Computer Science, Vol. 910. Springer Verlag, 251–292. Also DFKI Technical Report 1994.Google ScholarGoogle Scholar
  82. Gert Smolka. 1995b. The Oz Programming Model. In Computer Science Today. Lecture Notes in Computer Science, Vol. 1000. Springer Verlag, 324–343.Google ScholarGoogle ScholarCross RefCross Ref
  83. Gert Smolka and Ralf Treinen. 1994. Records for Logic Programming. Journal of Logic Programming 18, 3 (April), 229–258.Google ScholarGoogle ScholarCross RefCross Ref
  84. Ian Sommerville. 1992. Software Engineering. Addison-Wesley.Google ScholarGoogle ScholarDigital LibraryDigital Library
  85. Alfred Spiessens, Raphaël Collet, and Peter Van Roy. 2003. Declarative Laziness in a Concurrent Constraint Language. In 2nd International Workshop on Multiparadigm Constraint Programming Languages (MultiCPL 2003). Kinsale, Ireland(Sept.). Colocated with 9th International Conference on Principles and Practice of Constraint Programming (CP2003).Google ScholarGoogle Scholar
  86. Leon Sterling and Ehud Shapiro. 1986. The Art of Prolog–Advanced Programming Techniques. The MIT Press.Google ScholarGoogle Scholar
  87. Ken Thompson. 1987. Reflections on Trusting Trust. See [ Ashenhurst and Graham 1987 ]. 1983 Turing Award Lecture.Google ScholarGoogle Scholar
  88. Evan Tick. 1995. The Deevolution of Concurrent Logic Programming. Journal of Logic Programming 23, 2 (May), 89–123.Google ScholarGoogle ScholarCross RefCross Ref
  89. Kazunori Ueda. 1985. Guarded Horn Clauses. In 4th International Conference on Logic Programming ’85 (Lecture Notes in Computer Science), Eiti Wada (Ed.), Vol. 221. Springer Verlag, Tokyo, Japan(July), 168–179.Google ScholarGoogle Scholar
  90. Kazunori Ueda and Takashi Chikayama. 1990. Design of the Kernel Language for the Parallel Inference Machine. Comput. J. 33, 6, 494–500.Google ScholarGoogle ScholarDigital LibraryDigital Library
  91. Pascal Van Hentenryck. 1994. Constraint logic programming. The Knowledge Engineering Review 6, 3 (Sept.), 151–194.Google ScholarGoogle Scholar
  92. Peter Van Roy. 1994. 1983–1993: The Wonder Years of Sequential Prolog Implementation. Journal of Logic Programming 19/20 (May/July), 385–441. Also Digital PRL Research Report 36, Dec. 1993.Google ScholarGoogle Scholar
  93. Peter Van Roy. 1999. On the separation of concerns in distributed programming: Application to distribution structure and fault tolerance in Mozart. In International Workshop on Parallel and Distributed Computing for Symbolic and Irregular Applications (PDSIA 99). Tohoku University, Sendai, Japan(July).Google ScholarGoogle Scholar
  94. Peter Van Roy (Ed.). 2004. 2nd International Conference on Multiparadigm Programming in Mozart/Oz (MOZ2004). Lecture Notes in Computer Science, Vol. 3389. Springer Verlag, Charleroi, Belgium(Oct.).Google ScholarGoogle Scholar
  95. Peter Van Roy. 2006. Convergence in Language Design: A Case of Lightning Striking Four Times in the Same Place. In 8th International Symposium on Functional and Logic Programming (FLOPS 2006) (Lecture Notes in Computer Science), Vol. 3945. Springer Verlag(April), 2–12.Google ScholarGoogle Scholar
  96. Peter Van Roy. 2009. Programming Paradigms for Dummies: What Every Programmer Should Know. IRCAM/Delatour France(June).Google ScholarGoogle Scholar
  97. Peter Van Roy. 2011. The CTM Approach for Teaching and Learning Programming. Vol. 2. Nova Science Publishers(Jan.), Chapter 5, 101–126.Google ScholarGoogle Scholar
  98. Peter Van Roy. 2018. A Software System Should be Declarative Except Where it Interacts with the Real World. In Workshop on Logic and Practice of Programming (LPOP 2018). Oxford, UK(July). Colocated with FLoC 2018.Google ScholarGoogle Scholar
  99. Peter Van Roy, Joe Armstrong, Matthew Flatt, and Boris Magnusson. 2003a. The Role of Language Paradigms in Teaching Programming. In 34th Technical Symposium on Computer Science Education (SIGCSE 2003). (Feb.).Google ScholarGoogle Scholar
  100. Peter Van Roy, Per Brand, Denys Duchier, Seif Haridi, Martin Henz, and Christian Schulte. 2003b. Logic Programming in the Context of Multiparadigm Programming: The Oz Experience. Journal of Theory and Practice of Logic Programming (Nov.), 715–763.Google ScholarGoogle Scholar
  101. Peter Van Roy and Seif Haridi. 1999. Mozart: A Programming System for Agent Applications. AgentLink News 4 (Nov.). Esprit Network of Excellence for Agent-Based Computing.Google ScholarGoogle Scholar
  102. Peter Van Roy and Seif Haridi. 2004. Concepts, Techniques, and Models of Computer Programming. The MIT Press.Google ScholarGoogle ScholarDigital LibraryDigital Library
  103. Peter Van Roy, Seif Haridi, Per Brand, Gert Smolka, Michael Mehl, and Ralf Scheidhauer. 1997. Mobile Objects in Distributed Oz. ACM Transactions on Programming Languages and Systems 19, 5 (Sept.), 804–851.Google ScholarGoogle Scholar
  104. Peter Van Roy, Michael Mehl, and Ralf Scheidhauer. 1996. Integrating Efficient Records into Concurrent Constraint Programming. In 8th International Symposium on Programming Languages, Implementations, Logics, and Programs (PLILP ’96). Springer Verlag, Aachen, Germany(Sept.).Google ScholarGoogle ScholarDigital LibraryDigital Library
  105. David H. D. Warren. 1977. Applied Logic–Its Use and Implementation as a Programming Tool. Ph.D. Dissertation. University of Edinburgh. DAI Research Reports 39 & 40, Also reprinted as Technical Note 290, SRI International, 1983.Google ScholarGoogle Scholar
  106. David H. D. Warren. 1983. An Abstract Prolog Instruction Set. Technical Report. (Oct.). Technical Note 309, SRI International Artificial Intelligence Center.Google ScholarGoogle Scholar
  107. ACCLAIM. 1992–1995. Advanced Concurrent Constraint Languages: Application, Implementation, and Methodology.Google ScholarGoogle Scholar
  108. Mats Carlsson et al. 2001–2020. SICStus Prolog. https://sicstus.sics.se/ Research Institutes of Sweden.Google ScholarGoogle Scholar
  109. Jean-Luc Cochard (Ed.). 1995. WOz’95, International Workshop On Oz Programming. Institut Dalle Molle d’Intelligence Artificielle Perceptive (IDIAP), CP 592, CH-1920 Martigny(Nov).Google ScholarGoogle Scholar
  110. Seif Haridi. 1994. Development of Concurrent Constraint Languages for Multiparadigm Programming. (Dec.). https: //www.info.ucl.ac.be/~pvr/acclaim-95.pdf Invited talk, Fifth Generation Computer Systems (FGCS 1994).Google ScholarGoogle Scholar
  111. Seif Haridi. 1996. A Tutorial of Oz 2.0. Technical Report. Swedish Institute of Computer Science(Nov.). https://www.info. ucl.ac.be/~pvr/Tutorial_of_Oz_2.pdfGoogle ScholarGoogle Scholar
  112. Seif Haridi, Per Brand, Nils Franzén, and Erik Klintskog. 1996. PERDIO: Persistence and Distributed Programming Systems(Feb.). Nutek project proposal, Sweden.Google ScholarGoogle Scholar
  113. Yves Jaradin and Sébastien Doeraene. 2013. Mozart VM 2.0: Design of the New Virtual Machine of Mozart, An Implementation of Oz. (April). https://www.info.ucl.ac.be/~pvr/mozart2-design.pdf Technical presentation.Google ScholarGoogle Scholar
  114. Mozart Consortium. 2018. The Mozart Programming System (Oz 3), Version 2. (Sept.). http://mozart2.org/Google ScholarGoogle Scholar
  115. Peter Norvig. 2006–2020. Teach Yourself Programming in Ten Years. https://norvig.com/21-days.htmlGoogle ScholarGoogle Scholar
  116. PIRATES. 1997–2003. Méthodes et Outils pour la Programmation Répartie Transparente et Sûre (Methods and Tools for Dependable Transparent Distributed Programming). Wallonia Region (Belgium) project (Convention 9713540).Google ScholarGoogle Scholar
  117. Christian Schulte, Guido Tack, and Mikael Z. Lagerkvist. 2019. Modeling and Programming with Gecode. (May). https: //www.gecode.org/doc-latest/MPG.pdf This document will always correspond to the latest Gecode version, which is available at https://www.gecode.org .Google ScholarGoogle Scholar
  118. SELFMAN. 2006–2009. Self Management for Large-Scale Distributed Systems based on Structured Overlay Networks and Components. http://www.ist-selfman.org European Sixth Framework Programme project (Number 034084).Google ScholarGoogle Scholar
  119. Gert Smolka, Christian Schulte, and Peter Van Roy. 1995. PERDIO—Persistent and Distributed Programming in Oz(March). BMBF project proposal, Germany.Google ScholarGoogle Scholar
  120. Peter Van Roy. 2008. Programming Paradigms Poster. https://www.info.ucl.ac.be/~pvr/paradigms.htmlGoogle ScholarGoogle Scholar
  121. Peter Van Roy, Seif Haridi, and Per Brand. 1999. Distributed Programming in Mozart – A Tutorial Introduction. http: //mozart2.org/mozart-v1/doc-1.4.0/dstutorial/index.html Part of Mozart 1 documentation.Google ScholarGoogle Scholar
  122. Wikipedia. 2020a. Clarke’s Three Laws. https://en.wikipedia.orgGoogle ScholarGoogle Scholar
  123. Wikipedia. 2020b. Fifth Generation Computer. https://en.wikipedia.orgGoogle ScholarGoogle Scholar

Index Terms

  1. A history of the Oz multiparadigm language

                              Recommendations

                              Comments

                              Login options

                              Check if you have access through your login credentials or your institution to get full access on this article.

                              Sign in

                              Full Access

                              PDF Format

                              View or Download as a PDF file.

                              PDF

                              eReader

                              View online with eReader.

                              eReader
                              About Cookies On This Site

                              We use cookies to ensure that we give you the best experience on our website.

                              Learn more

                              Got it!