Skip to main content Accessibility help
×
Home
Hostname: page-component-568f69f84b-lkk24 Total loading time: 0.547 Render date: 2021-09-22T14:39:10.730Z Has data issue: true Feature Flags: { "shouldUseShareProductTool": true, "shouldUseHypothesis": true, "isUnsiloEnabled": true, "metricsAbstractViews": false, "figures": true, "newCiteModal": false, "newCitedByModal": true, "newEcommerce": true, "newUsageEvents": true }

Logic programming in the context of multiparadigm programming: the Oz experience

Published online by Cambridge University Press:  25 November 2003

PETER VAN ROY
Affiliation:
Université catholique de Louvain, B-1348 Louvain-la-Neuve, Belgium (e-mail: pvr@info.ucl.ac.be)
PER BRAND
Affiliation:
Swedish Institute of Computer Science, S-164 28 Kista, Sweden (e-mail: perbrand@sics.se)
DENYS DUCHIER
Affiliation:
Universität des Saarlandes, D-66123 Saarbrücken, Germany (e-mail: Denys.Duchier@ps.uni-sb.de)
SEIF HARIDI
Affiliation:
Royal Institute of Technology (KTH), S-164 28 Kista, Sweden (e-mail: seif@imit.kth.se)
CHRISTIAN SCHULTE
Affiliation:
Royal Institute of Technology (KTH), S-164 28 Kista, Sweden (e-mail: schulte@imit.kth.se)
MARTIN HENZ
Affiliation:
National University of Singapore, Singapore 117543 (e-mail: henz@comp.nus.edu.sg)

Abstract

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.) with equal ease. This paper has two goals: to give a tutorial of logic programming in Oz; and to show how logic programming fits naturally into the wider context of multiparadigm programming. Our experience shows that there are two classes of problems, which we call algorithmic and search problems, for which logic programming can help formulate practical solutions. Algorithmic problems have known efficient algorithms. Search problems do not have known efficient algorithms but can be solved with search. The Oz support for logic programming targets these two problem classes specifically, using the concepts needed for each. This is in contrast to the Prolog approach, which targets both classes with one set of concepts, which results in less than optimal support for each class. We give examples that can be run interactively on the Mozart system, which implements Oz. To explain the essential difference between algorithmic and search programs, we define the Oz execution model. This model subsumes both concurrent logic programming (committed-choice-style) and search-based logic programming (Prolog-style). Furthermore, as consequences of its multiparadigm nature, the model supports new abilities such as first-class top levels, deep guards, active objects, and sophisticated control of the search process. Instead of Horn clause syntax, Oz has a simple, fully compositional, higher-order syntax that accommodates the abilities of the language. We give a brief history of Oz that traces the development of its main ideas and we summarize the lessons learned from this work. Finally, we give many entry points into the Oz literature.

Type
Regular Papers
Copyright
© 2003 Cambridge University Press

Access options

Get access to the full version of this content by using one of the access options below. (Log in options will check for institutional or personal access. Content may require purchase if you do not have access.)

Footnotes

This paper is a much-extended version of the tutorial talk “Logic Programming in Oz with Mozart” given at the International Conference on Logic Programming, Las Cruces, New Mexico, November 1999. Some knowledge of traditional logic programming (with Prolog or concurrent logic languages) is assumed.
22
Cited by

Send article to Kindle

To send this article to your Kindle, first ensure no-reply@cambridge.org is added to your Approved Personal Document E-mail List under your Personal Document Settings on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part of your Kindle email address below. Find out more about sending to your Kindle. Find out more about sending to your Kindle.

Note you can select to send to either the @free.kindle.com or @kindle.com variations. ‘@free.kindle.com’ emails are free but can only be sent to your device when it is connected to wi-fi. ‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.

Find out more about the Kindle Personal Document Service.

Logic programming in the context of multiparadigm programming: the Oz experience
Available formats
×

Send article to Dropbox

To send this article to your Dropbox account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Dropbox.

Logic programming in the context of multiparadigm programming: the Oz experience
Available formats
×

Send article to Google Drive

To send this article to your Google Drive account, please select one or more formats and confirm that you agree to abide by our usage policies. If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your <service> account. Find out more about sending content to Google Drive.

Logic programming in the context of multiparadigm programming: the Oz experience
Available formats
×
×

Reply to: Submit a response

Please enter your response.

Your details

Please enter a valid email address.

Conflicting interests

Do you have any conflicting interests? *