CMU Artificial Intelligence Repository
ALF: Algebraic Logic Functional programming language
ALF (Algebraic Logic/Functional programming language) is a programming
language that combines functional and logic programming techniques.
ALF is based on Horn clause logic with equality. Predicates and Horn
clauses are used for logic programming, and functions and equations
for functional programming. Any functional expression can be used in a
goal literal, and any predicate can occur in the conditions of an
The ALF system is implemented using a combination of resolution,
narrowing, rewriting and rejection. The resolution rule is used to
solve literals and narrowing to evaluate functional expressions. The
number of possible narrowing steps is reduced by a leftmost-innermost
basic narrowing strategy, and terms are simplified by rewriting before
narrowing is applied. Equations are also rejected if the two sides
have different constructors at the top. Rewriting and rejection can
result in a large reduction of the search tree. Thus the operational
semantics of ALF is more efficient than Prolog's resolution strategy.
Like Prolog, ALF uses a backtracking strategy corresponding to a
depth-first search in the derivation tree. ALF programs are compiled
into instructions of an abstract machine based on the Warren Abstract
Machine (WAM) with several extensions to implement narrowing and
rewriting. The emulator for A-WAM programs is written in C.
23-JUN-92 (ALF preprocessor 0.7.3, FlatALF Compiler 2.13, A-WAM Bytecode Interpreter 0.5.9)
Requires: Prolog, C
Ports: Sun3 or Sun4.
Quintus-Prolog 3.1.1, Sicstus-Prolog 2.1 (patch-level 7
or more) or SB-Prolog 3.1
Copying: Use permitted to evaluation, research, and teaching purposes.
Use prohibited for commercial and military purposes.
CD-ROM: Prime Time Freeware for AI, Issue 1-1
Author(s): Michael Hanus
Contact: Michael Hanus
Max-Planck-Institut f\"ur Informatik
W-4600 Dortmund 50, Germany
ALF, Authors!Hanus, Authors!Opalla,
Programming Languages!Functional Programming,
Programming Languages!Logic Programming,
An installation guide and user's manual is included in the distribution.
Last Web update on Mon Feb 13 10:34:34 1995