Information Technology Reference
In-Depth Information
The Alma Project, or How First-Order Logic
Can Help Us in Imperative Programming
Krzysztof R. Apt 1 ; 2 and Andrea Schaerf 3
1 CWI
P.O. Box 94079, 1090 GB Amsterdam, The Netherlands
K.R.Apt@cwi.nl
2 Dept. of Mathematics, Computer Science, Physics & Astronomy University of
Amsterdam, The Netherlands
3 Dipartimento di Ingegneria Elettrica, Gestionale e Meccanica
Universita di Udine
via delle Scienze 208, I-33100 Udine, Italy
schaerf@uniud.it
Abstract. The aim of the Alma project is the design of a strongly typed
constraint programming language that combines the advantages of logic
and imperative programming.
The rst stage of the project was the design and implementation of Alma-
0
, a small programming language that provides a support for declarative
programming within the imperative programming framework. It is ob-
tained by extending a subset of Modula-2 by a small number of features
inspired by the logic programming paradigm.
In this paper we discuss the rationale for the design of Alma-0 , the ben-
ets of the resulting hybrid programming framework, and the current
work on adding constraint processing capabilities to the language. In
particular, we discuss the role of the logical and customary variables, the
interaction between the constraint store and the program, and the need
for lists.
1
Introduction
1.1
Background on Designing Programming Languages
The design of programming languages is one of the most hotly debated topics
in computer science. Such debates are often pretty chaotic because of the lack
of universally approved criteria for evaluating programming languages. In fact,
the success or failure of a language proposal often does not say much about
the language itself but rather about such accompanying factors as: the quality
and portability of the implementation, the possibility of linking the language
with the currently reigning programming language standard (for instance, C),
the existing support within the industry, presence of an attractive development
environment, the availability on the most popular platforms, etc.
The presence of these factors often blurs the situation because in evaluating
a language proposal one often employs, usually implicitly, an argument that the
Search WWH ::




Custom Search