The Ciao Prolog system

Ciao is a modern Prolog implementation that builds up from a logic-based simple kernel designed to be portable, extensible, and modular. It features:

Ciao can install natively in your operating system or run in the browser without installation.

%! \begin{miniplayground}
% Edit me!
% Code is loaded on the fly.
%
% Then type a query on the right,
%   ?- app(X,Y,[1,2,3]).

app([],Ys,Ys).
app([X|Xs],Ys,[X|Zs]) :-
     app(Xs,Ys,Zs).
%! \end{miniplayground}
The system implements some advanced features such as separate and incremental compilation, global program analysis and static debugging and optimization (via source to source program transformation, CiaoPP preprocessor), a build automation system, LPdoc documentation generator, debugger, and integrated development environment.