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 (Ger...
详细信息
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.
The guest editors discussed the pragmatics of multiparadigm programming with Neal Ford and Brian Goetz. Should the average team adopt MPP? Can it do so successfully? Neal argues that such teams can't afford not to...
详细信息
The guest editors discussed the pragmatics of multiparadigm programming with Neal Ford and Brian Goetz. Should the average team adopt MPP? Can it do so successfully? Neal argues that such teams can't afford not to adopt MPP, if they want to stay competitive. However, the risks can be mitigated by careful adoption, based on demonstrable value, with appropriate division of responsibilities among team members, based on their skills. Brian argues that developers often make poor choices, driven more by personal interests than by concern for what is ultimately best for team success. Neal offers some real-world examples of how Thoughtworks has used MPP effectively.
The guest editors of this special issue on multiparadigm programming explore the field's recent explosive growth and how the articles (plus email roundtable) they've selected for this issue exemplify its curre...
详细信息
The guest editors of this special issue on multiparadigm programming explore the field's recent explosive growth and how the articles (plus email roundtable) they've selected for this issue exemplify its current status.
While OO has, become ubiquitously employed for design;implementation, and even conceptualization, many practitioners recognize the concomitant need for other programming paradigms according to problem domain. Neverthe...
详细信息
ISBN:
(纸本)9783642020469
While OO has, become ubiquitously employed for design;implementation, and even conceptualization, many practitioners recognize the concomitant need for other programming paradigms according to problem domain. Nevertheless, the choice of a programming paradigm is strongly influenced by the supporting programming language facilities. In turn, choice of programming language is usually highly constrained by practical considerations. We seek answers to the question of how to address the need for other programming paradigms, or even domain specific languages, in the general context of OO languages. It is clear that this field is active and fluid: novel, disparate approaches' and techniques are still being discovered or invented, And this very novelty adds a. significant element of intellectual entertainment. This article describes the cross section of research efforts reported at the, workshop on multiparadigm programming in Object-Oriented Languages held at, the 2008 European Conference on Object-Oriented programming.
There is a notable overlap of the challenges with which the semantic technologies and software engineering deal. They can also complement and mutually improve each other. Current efforts mostly focus on improving soft...
详细信息
There is a notable overlap of the challenges with which the semantic technologies and software engineering deal. They can also complement and mutually improve each other. Current efforts mostly focus on improving software tools around the resource description framework (RDF) and Web Ontology Language (OWL) Web-oriented ecosystem that helps ontology engineers but is alien to software engineers. This paper presents an opposite approach taken from the software developer's viewpoint-an incorporation of the ontology paradigm into a general-purpose programming language, in a simple and agile way, on a small scale, and in an unpretentious manner. The objective is to help programmers write simple domain-driven code with richer semantics. The means to achieve this objective relies on metaprogramming to internalize the ontology modeling paradigm into a mainstream programming environment based on the Java ecosystem, in a lightweight manner suitable for small teams. An embedded meta domain-specific language (DSL), which is called Magic Potion, is implemented in Clojure and blends ontology, functional, object-oriented, and concurrent paradigms. An example from the technology enhanced learning (TEL) domain is used to illustrate Magic Potion in action.
Constraint programming (CP) is a young but rapidly developing technology that supports the modeling and solution of a wide range of planning, scheduling, search, and optimization problems. The integration of CP concep...
详细信息
Constraint programming (CP) is a young but rapidly developing technology that supports the modeling and solution of a wide range of planning, scheduling, search, and optimization problems. The integration of CP concepts into languages from other paradigms yields constraint-based multiparadigm programming. This article briefly introduces the constraint-based paradigm and discusses methods, problems, gains, and experiences in integrating CP techniques into the object-oriented paradigm, using Java as an example. [ABSTRACT FROM PUBLISHER]
This paper presents, from a user point-of-view, the mechanism of cooperation between constraint domains that is currently part of the system TOY, an implementation of a constraint functional logic programming scheme. ...
详细信息
This paper presents, from a user point-of-view, the mechanism of cooperation between constraint domains that is currently part of the system TOY, an implementation of a constraint functional logic programming scheme. This implementation follows a cooperative goal solving calculus based on lazy narrowing. It manages the invocation of solvers for each domain, and projection operations for converting constraints into mate domains via mediatorial constraints. We implemented the cooperation among Herbrand, real arithmetic (R), finite domain (FD) and set (S) domains. We provide two mediatorial constraints: The first one relates the numeric domains FD and R, and the second one relates FD and S.
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-orie...
详细信息
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.
Cleogo is a novel groupware environment that allows several users to simultaneously develop programs through any mixture of three alternative programming metaphors: a direct manipulation language for programming by de...
详细信息
ISBN:
(纸本)0818683481
Cleogo is a novel groupware environment that allows several users to simultaneously develop programs through any mixture of three alternative programming metaphors: a direct manipulation language for programming by demonstration;an iconic language;and a standard text-based language. Cleogo is motivated by the pedagogical values of peer-learning and of collaborative problem solving, and by our desire to investigate flexible and appropriate user-interfaces for programming, particularly for youthful users. Through its real-time groupware facilities Cleogo provides a shared conversational artifact around which students can talk, gesture and work on programming tasks. As three concurrently active programming metaphors allow students to choose a method of program expression that best suits their task and skill level. Critical issues in the design and motivation of Cleogo are described.
暂无评论