The YAP Prolog System

COPPE Logo UP Logo

SourceForge Logo

YAP is a high-performance Prolog compiler developed at LIACC/Universidade do Porto and at COPPE Sistemas/UFRJ. Its Prolog engine is based in the WAM (Warren Abstract Machine), with several optimizations for better performance. YAP follows the Edinburgh tradition, and is largely compatible with the ISO-Prolog standard and with Quintus and SICStus Prolog. YAP 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 YAP strives at several goals:

YAP 4.0 and early versions of YAP 4.1 were distributed under a license that enables free use in academic environments. From Yap4.1.15 onwards YAP is distributed under Perls's Artistic 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!

Mirrors of this page are available at sourceforge, at Universidade do Porto, and at Universidade Federal do Rio de Janeiro (the one in Rio currently has problems).



The Yap YAP-4.4.4 version is now the major version for Yap.

The sources can be found here:

The following binaries are available:

Please do report any bugs to

The manual is also available online (PDF). Documentation is also available for download.


YAP includes several external packages that work with YAP. My very sincere thanks to the authors for allowing the inclusion of these packages. The packages are: The CLP(BN) package is being developed at UFRJ and will soon be included in YAP.


This is a list of some applications and contributions to YAP:

Development Version

The development version is Yap4.5. Development of Yap now uses sourceforge. Mailing lists are being relocated to sourceforge, and a CVS archive is to be kept there. There is a central project page with all sourceforge information. There you can have: The previous experimental version was Yap4.3. The major highlights of this version include complete support of the ISO standard, a library system, and attributed variables. The release also includes several of new built-ins, including several improvements for SICStus Prolog compatibility. We have ported the system to Visual C++ 6.0 and to the HP-UX environment. The module system, the garbage collector, the meta-call, and arithmetic operations have been completely revamped.

The manual for the new release can also be found online.

A log for all changes until version 4.3 is also available.

A previous experimental version was Yap4.1. Major highlights of the first development version include and internal redesign for improved error handling, arrays and ISO-support, and an uniform mechanism to support extensions to the unification algorithm that is designed to support constraints. Yap4.1 was distributed in source form . The final version was 4.1.18. Versions of Yap4.1 can still be found in the archive: Yap 4.1.0, Yap 4.1.1, Yap 4.1.2, Yap 4.1.4, Yap 4.1.5, Yap 4.1.6, Yap 4.1.7, Yap 4.1.8, Yap 4.1.9, Yap 4.1.10, Yap 4.1.11, Yap 4.1.12, Yap 4.1.13, Yap 4.1.14, Yap 4.1.15, Yap 4.1.16, Yap 4.1.17, Yap 4.1.18.

A log for all changes in version 4.1 is also available.

Old Stable Version

Development in the old YAP4.0 stable version mainly consisted of bug fixes. It did not include any new functionality. The final release is Yap4.0.3. Binaries for Solaris and Linux/ELF are available. These are the fixes in the releases up to Yap4.0.3.

Support and Documentation

A manual for YAP is available, both as HTML and as a TeXinfo file.
Vítor Santos Costa (