:- Yet Another Prolog
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:
Portability: The whole system is now written in C. YAP 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.
Performance: We have optimised the emulator to obtain performance comparable to or better than well-known Prolog systems. In fact, the current version of YAP performs better than the original one, written in assembly language.
Robustness: We have tested the system with a large array of Prolog applications.
Extensibility: YAP 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 YAP extends these principles to accomodate extensions to the unification algorithm, that we believe will be useful to implement extensions such as constraint programming.
Completeness: YAP 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 YAP aims now at being compatible with the Prolog standard.
Openess: We would like to make new development of YAP open to the user community.
Research: YAP has been a vehicle for research within and outside our group. Currently research is going on on parallelisation and tabulation, and support for Bayesian Networks.
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).