[WARNING: do not edit, file automatically generated by lpdoc/texinfo]
 
1 README
********

This is the source directory of the Ciao Prolog program development
system.

   * See the file INSTALL for installation instructions.

   * The latest version of Ciao is available from
     `http://www.clip.dia.fi.upm.es'.

   * Please report bugs or installation difficulties to
     <ciao-bug@clip.dia.fi.upm.es>.


1.1 The Ciao Prolog Program Development System
==============================================

*Ciao* is a _public domain_, _next generation_ multi-paradigm
programming environment with a unique set of features:

   * Ciao offers a complete Prolog system, supporting _ISO-Prolog_,
     but its novel modular design allows both _restricting_ and
     _extending_ the language. As a result, it allows working with
     _fully declarative subsets_ of Prolog and also to _extend_ these
     subsets (or ISO-Prolog) both syntactically and semantically.
     Most importantly, these restrictions and extensions can be
     activated separately on each program module so that several
     extensions can coexist in the same application for different
     modules.

   * Ciao also supports (through such extensions) programming with
     functions, higher-order (with predicate abstractions),
     constraints, and objects, as well as feature terms (records),
     persistence, several control rules (breadth-first search,
     iterative deepening, ...), concurrency (threads/engines), a good
     base for distributed execution (agents), and parallel execution.
     Libraries also support WWW programming, sockets, external
     interfaces (C, Java, TclTk, relational databases, etc.), etc.

   * *Ciao* offers support for _programming in the large_ with a
     robust module/object system, module-based separate/incremental
     compilation (automatically -no need for makefiles), an assertion
     language for declaring (_optional_) program properties
     (including types and modes, but also determinacy, non-failure,
     cost, etc.), automatic static inference and static/dynamic
     checking of such assertions, etc.

   * *Ciao* also offers support for _programming in the small_
     producing small executables (including only those builtins used
     by the program) and support for writing scripts in Prolog.

   * The *Ciao* programming environment includes a classical
     top-level and a rich emacs interface with an embeddable
     source-level debugger and a number of execution visualization
     tools.

   * The *Ciao* compiler (which can be run outside the top level
     shell) generates several forms of architecture-independent and
     stand-alone executables, which run with speed, efficiency and
     executable size which are very competitive with other commercial
     and academic Prolog/CLP systems. Library modules can be compiled
     into compact bytecode or C source files, and linked statically,
     dynamically, or autoloaded.

   * The novel modular design of Ciao enables, in addition to modular
     program development, effective global program analysis and
     static debugging and optimization via source to source program
     transformation. These tasks are performed by the *Ciao
     preprocessor* (`ciaopp', distributed separately).

   * The *Ciao* programming environment also includes `lpdoc', an
     automatic documentation generator for LP/CLP programs. It
     processes Prolog files adorned with (*Ciao*) assertions and
     machine-readable comments and generates manuals in many formats
     including `postscript', `pdf', `texinfo', `info', `HTML', `man',
     etc. , as well as on-line help, ascii `README' files, entries
     for indices of manuals (`info', WWW, ...), and maintains WWW
     distribution sites.


   *Ciao* is distributed under the GNU Library General Public License
(LGPL).

