The Alma Project, or How First-Order Logic Can Help Us in Imperative Programming
Krzysztof R. Apt, Andrea Schaerf

TL;DR
The paper introduces Alma-0, a hybrid programming language combining logic and imperative paradigms, enhancing declarative programming within an imperative framework with constraint processing capabilities.
Contribution
It presents the design and implementation of Alma-0, a language that integrates logic programming features into an imperative language based on Modula-2, and discusses its benefits and ongoing enhancements.
Findings
Alma-0 supports declarative programming within an imperative framework.
The language integrates constraint processing with logical and customary variables.
Initial implementation shows promising integration of logic and imperative features.
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 first 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 obtained 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 benefits 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.
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsLogic, programming, and type systems · Logic, Reasoning, and Knowledge · Constraint Satisfaction and Optimization
