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.
- Harold Abelson, Gerald Jay Sussman, and Julie Sussman. 1996. Structure and Interpretation of Computer Programs, Second Edition. The MIT Press, Cambridge, Mass.Google Scholar
- 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 Scholar
Cross Ref
- 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 Scholar
- Robert L. Ashenhurst and Susan Graham (Eds.). 1987. ACM Turing Award Lectures: The First Twenty Years. ACM Press.Google Scholar
- 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 Scholar
- 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 Scholar
- Luca Cardelli. 1995. A language with distributed scope. ACM Transactions on Computer Systems 8, 1 (Jan.), 27–59.Google Scholar
- 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 Scholar
- Raphaël Collet. 2007. The Limits of Network Transparency in a Distributed Programming Language. Ph.D. Dissertation. Université catholique de Louvain(Dec.).Google Scholar
- Alain Colmerauer. 1982. PROLOG II Reference Manual and Theoretical Model. Technical Report. Université Aix-Marseille II, Groupe d’Intelligence Artificielle(Oct.).Google Scholar
- Alain Colmerauer and Philippe Roussel. 1996. The Birth of Prolog. In History of Programming Languages–II. 331–367.Google Scholar
- 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 Scholar
- 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 Scholar
- Benoit Daloze. 2014. Extending Mozart 2 to Support Multicore Processors. Master’s thesis. Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Sébastien Doeraene. 2011. Ozma: Extending Scala with Oz Concurrency. Master’s thesis. Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- Matthias Felleisen. 1990. On the Expressive Power of Programming Languages. In 3rd European Symposium on Programming (ESOP 1990). (May), 134–151.Google Scholar
- François Fonteyn. 2014. Comprehensions in Mozart. Master’s thesis. ICTEAM Institute, Université catholique de Louvain, Louvain-la-Neuve, Belgium(June).Google Scholar
- 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 Scholar
- Peter Gammie. 2009. Book Review: Concepts, Techniques, and Models of Computer Programming. Journal of Functional Programming 19, 2 (March).Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- 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 Scholar
- Martin Henz. 1997b. Objects in Oz. Ph.D. Dissertation. Fachbereich Informatik, Universität des Saarlandes, Saarbrücken, Germany(June).Google Scholar
- 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 Scholar
- Martin Henz. 2000. Friar Tuck–A Constraint-Based Tournament-Scheduling Tool. IEEE Intelligent Systems (Jan./Feb.), 5–7.Google Scholar
- Martin Henz. 2001. Scheduling a Major College Basketball Conference–Revisited. Journal of Operations Research 49, 1 (Feb.), 163–168.Google Scholar
Digital Library
- Charles Antony Richard Hoare. 1987. The Emperor’s Old Clothes. See [ Ashenhurst and Graham 1987 ]. 1980 Turing Award Lecture.Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
Digital Library
- Sverker Janson. 1994. AKL–A Multiparadigm Programming Language. Ph.D. Dissertation. Uppsala University and SICS.Google Scholar
- 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 Scholar
- 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 Scholar
- Gilles Kahn and David B. MacQueen. 1977. Coroutines and Networks of Parallel Processes. In IFIP Congress. 993–998.Google Scholar
- B. W. Kernighan and D. M. Ritchie. 1988. The C Programming Language (ANSI C), 2nd edition. Prentice Hall, Englewood Cliffs, NJ.Google Scholar
- Erik Klintskog. 2005. Generic Distribution Support for Programming Systems. Ph.D. Dissertation. KTH and SICS, Stockholm, Sweden(April).Google Scholar
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Scott McGlashan and Tomas Axling. 1996. Talking to Agents in Virtual Worlds. In Third UK VR-SIG Conference. Leicester, UK.Google Scholar
- 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 Scholar
- 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 Scholar
- George L. Nemhauser and Michael A. Trick. 1998. Scheduling a major college basketball conference. Journal of Operations Research 46, 1 (Feb.), 1–8.Google Scholar
Digital Library
- Joachim Niehren, Jan Schwinghammer, and Gert Smolka. 2006. A Concurrent Lambda Calculus with Futures. Journal of Theoretical Computer Science 364, 338–356.Google Scholar
Digital Library
- Chris Okasaki. 1998. Purely Functional Data Structures. Cambridge University Press, Cambridge, UK.Google Scholar
Digital Library
- Richard O’Keefe. 1990. The Craft of Prolog. The MIT Press.Google Scholar
- 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 Scholar
- 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 Scholar
Cross Ref
- Dennis M. Ritchie. 1987. Reflections on Software Research. See [ Ashenhurst and Graham 1987 ]. 1983 Turing Award Lecture.Google Scholar
- 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 Scholar
- 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 Scholar
- Vijay A. Saraswat. 1993. Concurrent Constraint Programming. The MIT Press.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Christian Schulte. 2000a. Programming Constraint Inference Services. Ph.D. Dissertation. Universität des Saarlandes, Fachbereich Informatik, Saarbrücken, Germany.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Ehud Shapiro (Ed.). 1987. Concurrent Prolog: Collected Papers. Vol. 1-2. The MIT Press, Cambridge, Mass.Google Scholar
Digital Library
- Ehud Shapiro. 1989. The Family of Concurrent Logic Programming Languages. Comput. Surveys 21, 3 (Sept.), 413–510.Google Scholar
Digital Library
- Jeremy G. Siek and Walid Taha. 2006. Gradual typing for functional languages. In Scheme and Functional Programming Workshop (SFP). (Sept.), 81–92.Google Scholar
- Jörg Siekmann, Christoph Benzmüller, and Serge Autexier. 2006. Computer Supported Mathematics with ΩMEGA. Journal of Applied Logic 4, 533–559.Google Scholar
Cross Ref
- 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 Scholar
- Gert Smolka. 1995b. The Oz Programming Model. In Computer Science Today. Lecture Notes in Computer Science, Vol. 1000. Springer Verlag, 324–343.Google Scholar
Cross Ref
- Gert Smolka and Ralf Treinen. 1994. Records for Logic Programming. Journal of Logic Programming 18, 3 (April), 229–258.Google Scholar
Cross Ref
- Ian Sommerville. 1992. Software Engineering. Addison-Wesley.Google Scholar
Digital Library
- 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 Scholar
- Leon Sterling and Ehud Shapiro. 1986. The Art of Prolog–Advanced Programming Techniques. The MIT Press.Google Scholar
- Ken Thompson. 1987. Reflections on Trusting Trust. See [ Ashenhurst and Graham 1987 ]. 1983 Turing Award Lecture.Google Scholar
- Evan Tick. 1995. The Deevolution of Concurrent Logic Programming. Journal of Logic Programming 23, 2 (May), 89–123.Google Scholar
Cross Ref
- 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 Scholar
- Kazunori Ueda and Takashi Chikayama. 1990. Design of the Kernel Language for the Parallel Inference Machine. Comput. J. 33, 6, 494–500.Google Scholar
Digital Library
- Pascal Van Hentenryck. 1994. Constraint logic programming. The Knowledge Engineering Review 6, 3 (Sept.), 151–194.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Peter Van Roy. 2009. Programming Paradigms for Dummies: What Every Programmer Should Know. IRCAM/Delatour France(June).Google Scholar
- Peter Van Roy. 2011. The CTM Approach for Teaching and Learning Programming. Vol. 2. Nova Science Publishers(Jan.), Chapter 5, 101–126.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Peter Van Roy and Seif Haridi. 2004. Concepts, Techniques, and Models of Computer Programming. The MIT Press.Google Scholar
Digital Library
- 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 Scholar
- 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 Scholar
Digital Library
- 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 Scholar
- David H. D. Warren. 1983. An Abstract Prolog Instruction Set. Technical Report. (Oct.). Technical Note 309, SRI International Artificial Intelligence Center.Google Scholar
- ACCLAIM. 1992–1995. Advanced Concurrent Constraint Languages: Application, Implementation, and Methodology.Google Scholar
- Mats Carlsson et al. 2001–2020. SICStus Prolog. https://sicstus.sics.se/ Research Institutes of Sweden.Google Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Seif Haridi, Per Brand, Nils Franzén, and Erik Klintskog. 1996. PERDIO: Persistence and Distributed Programming Systems(Feb.). Nutek project proposal, Sweden.Google Scholar
- 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 Scholar
- Mozart Consortium. 2018. The Mozart Programming System (Oz 3), Version 2. (Sept.). http://mozart2.org/Google Scholar
- Peter Norvig. 2006–2020. Teach Yourself Programming in Ten Years. https://norvig.com/21-days.htmlGoogle Scholar
- 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 Scholar
- 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 Scholar
- 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 Scholar
- Gert Smolka, Christian Schulte, and Peter Van Roy. 1995. PERDIO—Persistent and Distributed Programming in Oz(March). BMBF project proposal, Germany.Google Scholar
- Peter Van Roy. 2008. Programming Paradigms Poster. https://www.info.ucl.ac.be/~pvr/paradigms.htmlGoogle Scholar
- 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 Scholar
- Wikipedia. 2020a. Clarke’s Three Laws. https://en.wikipedia.orgGoogle Scholar
- Wikipedia. 2020b. Fifth Generation Computer. https://en.wikipedia.orgGoogle Scholar
Index Terms
A history of the Oz multiparadigm language
Recommendations
A Multiparadigm Programming Approach for Developing Knowledge-Based Systems
COMPSAC '95: Proceedings of the 19th International Computer Software and Applications ConferenceKnowledge-based systems are large and complex software systems which are difficult to understand and design. A multiparadigm programming approach, based on an integration of the object-oriented programming paradigm and the logic programming paradigm, is ...
General-purpose multiparadigm programming languages: an enabling technology for constructing complex systems
ICECCS '95: Proceedings of the 1st International Conference on Engineering of Complex Computer SystemsMultiparadigm programming languages have been envisioned as a vehicle for constructing large and complex heterogeneous systems, such as a stock market exchange or a telecommunications network. General-purpose multiparadigm languages, as opposed to ...
Logic programming in the context of multiparadigm programming: the Oz experience
Oz is a multiparadigm language that supports logic programming as one of its major paradigms. A multiparadigm language is designed to support different programming paradigms (logic, functional, constraint, object-oriented, sequential, concurrent, etc.) ...






Comments