This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues/pull-requests.

168 lines
5.7 KiB

<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>YAP Prolog</title>
<link rel="stylesheet" type="text/css" charset="utf-8" media="all" href="balanced2/css/common.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="screen" href="balanced2/css/screen.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="print" href="balanced2/css/print.css">
<link rel="stylesheet" type="text/css" charset="utf-8" media="projection" href="balanced2/css/projection.css">
<style type="text/css">
.style1 {
text-align: justify;
.style2 {
text-align: left;
.style3 {
text-align: center;
font-size: medium;
.style4 {
font-size: xx-small;
<body><!-- lang="en" dir="ltr"> -->
<div id="mastwrap">
<div id="masthead">
<a class="imageLink">&nbsp;</a>
<div id="sisternav">
<li id="current">
<a href="index.html">Main</a>
<li id="plain">
<a href="downloads.html">Downloads</a>
<li id="plain">
<a href="documentation.html">Documentation</a>
<li id="plain">
<a href="packages.html">Packages</a>
<li id="plain">
<a href="applications.html">Applications</a>
</div> <!-- of masthead -->
</div> <!-- of mastwrap -->
<a id="top"></a>
<h2>:- Yet Another Prolog</h2>
<table border="0" width="80%" id="table1">
<td style="border-style: none; border-width: medium;width: 426px">
<img src="Coppe.gif"></td>
<td style="border-style: none; border-width: medium;width: 401px">
<p class="style3">
<img src="up_hp.gif" style="float: right">UNIVERSIDADE <br>
&nbsp;<p class="style1"><strong>YAP</strong> is a high-performance Prolog compiler
developed at <a href="">LIACC</a>/<a href="">Universidade
do Porto</a> and at <a href="">COPPE Sistemas</a>/<a href="">UFRJ</a>.
Its Prolog engine is based in the WAM (Warren Abstract Machine), with
several optimizations for better performance. <strong>YAP</strong> follows
the Edinburgh tradition, and is largely compatible with the ISO-Prolog
standard and with Quintus and SICStus Prolog. <strong>YAP</strong> has been
developed since 1985. The original version was written in assembly, C and
Prolog, and achieved high performance on m68k based machines. The assembly
code was used to implement the WAM emulators. Later emulators supported the
VAX, SPARC, and MIPS architectures. Work on the more recent version of
<strong>YAP</strong> strives at several goals: </p>
<li class="style2">
<p class="style1">Portability: The whole system is now written in C.
<strong>YAP</strong> compiles in popular 32 bit machines, such as Suns
and Linux PCs, and in a 64 bit machines, the Alphas running OSF Unix and
Linux. </p>
<li class="style2">
<p class="style1">Performance: We have optimised the emulator to obtain
performance comparable to or better than well-known Prolog systems. In
fact, the current version of <strong>YAP</strong> performs better than
the original one, written in assembly language. &nbsp;</p>
<p class="style1">Robustness: We have tested the system with a large
array of Prolog applications. </p>
<li class="style2">
<p class="style1">Extensibility: <strong>YAP</strong> was designed
internally from the beginning to encapsulate manipulation of terms.
These principles were used, for example, to implement a simple and
powerful C-interface. The new version of <strong>YAP</strong> extends
these principles to accomodate extensions to the unification algorithm,
that we believe will be useful to implement extensions such as
constraint programming.</p>
<li class="style2">
<p class="style1">Completeness: <strong>YAP</strong> has for a long time
provided most builtins expected from a Edinburgh Prolog implementation.
These include I/O functionality, data-base operations, and modules. Work
on <strong>YAP</strong> aims now at being compatible with the Prolog
standard. &nbsp;</p>
<li class="style2">
<p class="style1">Openess: We would like to make new development of
<strong>YAP</strong> open to the user community. &nbsp;</p>
<li class="style2">
<p class="style1">Research: <strong>YAP</strong> has been a vehicle for
research within and outside our group. Currently research is going on on
parallelisation and tabulation, and support for <a href="clpbn">Bayesian
Networks</a>. </p>
<p class="style1">YAP 4.0 and early versions of YAP 4.1 were distributed
under a <a href="license.html">license</a> that enables free use in academic
environments. From Yap4.1.15 onwards YAP is distributed under Perls&#39;s
<a href="Artistic">Artistic</a> license. We would like to follow an open
development model: sources to the system are always made available from the
home page, and contributions from users are most welcome! </p>
<p class="style1">Mirrors of this page are available at
<a href="">sourceforge</a>, at
<a href="">Universidade do Porto</a>, and at
<a href="">Universidade Federal do Rio de
Janeiro</a> (the one in Rio currently has problems). </p>
<p align="right">
<br />
<!-- <b>Warning</b>: fread(): Length parameter must be greater than 0. in <b>/home/vsc/public_html/Yap/index.html</b> on line <b>166</b><br /> -->
<!-- <br> -->
<!-- <span class="style4">(Accesses since December 2005)</span> -->