ΛProlog

ΛProlog

λProlog, also written lambda Prolog, is a logic programming language featuring polymorphic typing, modular programming, and higher-order programming. These extensions to Prolog are derived from the higher-order hereditary Harrop formulas used to justify the foundations of λProlog. Higher-order quantification, simply typed λ-terms, and higher-order unification gives λProlog the basic supports needed to capture "higher-order abstract syntax", an approach to representing syntax that maps object-level bindings to programming language bindings. Programmers in λProlog need not deal with bound variable names: instead various declarative devices are available to deal with binder scopes and their instantiations. Since 1986, λProlog has received numerous implementations.

External links

* [http://www.lix.polytechnique.fr/Labo/Dale.Miller/lProlog/ λProlog homepage]

Implementations

* [http://teyjus.cs.umn.edu/ The Teyjus λProlog compiler] is the most recent and effective implementation to date. This compiler project is led by [http://www-users.cs.umn.edu/~gopalan/ Gopalan Nadathur] and various of his colleagues and students.

Tutorials

* [http://www.irisa.fr/prive/ridoux/ Olivier Ridoux] has written "Lambda-Prolog de A à Z... ou presque" (163 pages, French). It is available as [ftp://ftp.irisa.fr/techreports/habilitations/ridoux.ps.gz PostScript] , [ftp://ftp.irisa.fr/techreports/habilitations/ridoux.pdf PDF] , and [http://www.irisa.fr/lande/ridoux/LPAZ/lpaz_html.html html] .
* [http://www.cse.psu.edu/~hannan/ John Hannan] has written a tutorial on [http://www.cse.psu.edu/~hannan/papers/plilp-tutorial.ps.gz Program Analysis in lambda Prolog] for the 1998 PLILP Conference.
* [http://www.site.uottawa.ca/~afelty/ Amy Felty] has written in 1997 a tutorial on [http://www.site.uottawa.ca/~afelty/dist/lprolog97.ps lambda Prolog and its Applications to Theorem Proving] (Archived by WebCite® [http://www.webcitation.org/5WpO4HGEh] ).


Wikimedia Foundation. 2010.

Игры ⚽ Поможем сделать НИР

Look at other dictionaries:

  • ΛProlog — ou lambda prolog est un langage de programmation logique dérivé de prolog. λProlog est une double extension de prolog, dans un premier temps, en rajoutant les λtermes[1] et dans un second temps avec l ajout de nouveaux connecteurs tels que l… …   Wikipédia en Français

  • Logic programming — is, in its broadest sense, the use of mathematical logic for computer programming. In this view of logic programming, which can be traced at least as far back as John McCarthy s [1958] advice taker proposal, logic is used as a purely declarative… …   Wikipedia

  • Prolog — infobox programming language paradigm = Logic programming year = 1972 designer = Alain Colmerauer implementations = BProlog, ECLiPSe, Ciao Prolog, GNU Prolog, Quintus, SICStus, Strawberry, SWI Prolog, YAP Prolog, tuProlog dialects = ISO Prolog,… …   Wikipedia

  • List of programming languages by category — Programming language lists Alphabetical Categorical Chronological Generational This is a list of programming languages grouped by category. Some languages are listed in multiple categories. Contents …   Wikipedia

  • Programmation logique — La programmation logique est une forme de programmation qui définit les applications à l aide d un ensemble de faits élémentaires les concernant et de règles de logique leur associant des conséquences plus ou moins directes. Ces faits et ces… …   Wikipédia en Français

  • Category:Logic in computer science — Logic in computer science is that branch of mathematical logic which is approximately the intersection between mathematical logic and computer science. It contains: Those investigations into logic that are guided by applications in computer… …   Wikipedia

  • Unification (computer science) — Unification, in computer science and logic, is an algorithmic process by which one attempts to solve the satisfiability problem. The goal of unification is to find a substitution which demonstrates that two seemingly different terms are in fact… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”