[Next] [Up] [Previous] [Contents]
Next: Background Up: Introduction Previous: Introduction   Contents

What $ \alpha $Prolog Is For

Names, binding, and scope are perennial problems in many programming tasks, including implementing compilers and interpreters as well as symbolic mathematical tools and theorem proving systems. Few languages provide any assistance for programming with names, so programmers must reinvent the wheel every time a new system which makes use of names is built. This is often a tedious and error-prone process; also, the resulting programs tend to be more difficult to read and analyze. Programming language support for key data structures is crucial to writing clear, optimizable code in traditional domains such as matrix computations (via arrays), databases (via records), large-scale interactive systems (via objects), and algebraic symbolic computation (via ML-style algebraic datatypes or Prolog-style terms): these features have been standard in high-level programming languages for decades. The purpose of $ \alpha $Prolog is to provide the same kind of built-in support for names in a practical logic programming language.



James Cheney 2003-10-23