@ciao-lang/ts-ciao-interface
Version:
Simple Ciao interface for node.
4 lines • 7.54 kB
HTML
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><meta name="theme-color" content="#273f79"/><link rel="stylesheet" href="lpdoc.css" type="text/css"/><script type="text/javascript" src="lpdoc.js"></script><title>The Ciao System v1.22</title></head><body><div class="lpdoc-page fixleftbar"><a href="#" id="sidebar-toggle-button" class="lpdoc-navbutton"><span id="sidebar-button-arrow">☰</span></a><div id="sidebar" class="lpdoc-sidebar"><div style="height: 40px; margin-left: auto; margin-right: auto"><img src="ciao-logo_autofig.png" width=auto height=100%></div><div class="lpdoc-nav"><span class="lpdoc-on-right"><a class="lpdoc-navbutton" href="/">⌂</a><span class="lpdoc-navbutton-disabled">←</span><a class="lpdoc-navbutton" href="ciaocopyright.html">→</a><a class="lpdoc-navbutton" href="ciaosearch.html">🔍</a></span><span><a href="ciaofulltoc.html">TOC</a></span></div><hr></hr><ul class="lpdoc-itemize-sectpath"><li><a href=""><strong>The Ciao System</strong></a> ▾<ul><li><a href="ciaointro.html">Introduction</a></li><li><a href="GettingStarted.html">Getting started</a></li><li><a href="DevEnv.html">PART I - The program development environment</a></li><li><a href="BasicLang.html">PART II - The Ciao basic language</a></li><li><a href="AssrtLang.html">PART III - Assertions and auto-documentation</a></li><li><a href="ExtendLang.html">PART IV - Language extensions</a></li><li><a href="CompatProlog.html">PART V - Compatibility</a></li><li><a href="DataStructuresAlgs.html">PART VI - Data structures and algorithms</a></li><li><a href="StdLibs.html">PART VII - Standard libraries</a></li><li><a href="ExtraLibs.html">PART VIII - Additional libraries</a></li></ul></li></ul><hr></hr><ul><li><a href="ciaochanges.html">Version/Change Log</a></li><li><a href="ciaorefs.html">References</a></li><li><a href="ciaocopyright.html">Copyright</a></li></ul></div><div class="lpdoc-main"><div><br/><div class="lpdoc-cover-title"><h1 class="lpdoc-cover-h1">The Ciao System</h1>A New Generation, Multi-Paradigm Programming Language and Environment<br/>(Including a State-of-the-Art ISO-Prolog)<br/></div><div class="lpdoc-cover-address">The Computational logic, Languages, <br/>Implementation, and Parallelism (CLIP) Lab<br/><a href="https://www.cliplab.org/">https://www.cliplab.org/</a><br/>School of CS, T. U. of Madrid (UPM)<br/>IMDEA Software Institute<br/></div><div class="lpdoc-cover-authors"><strong>Edited by:</strong><br/>Francisco Bueno<br/>Manuel Carro<br/>Manuel Hermenegildo<br/>Pedro López<br/>José F. Morales<br/></div><div class="lpdoc-cover-subtitle-extra">REFERENCE MANUAL<br/><strong>The Ciao Documentation Series</strong><br/><a href="https://ciao-lang.org/">https://ciao-lang.org/</a><br/><em>Generated/Printed on:</em> 2023/7/22<br/>Technical Report CLIP 3/97-1.22<br/>Version 1.22 (2022/9/28, 17:41:23 CET)<br/></div><div class="lpdoc-clearer"></div></div>
<br/><br/><div id="Summary">
<p><strong>Ciao</strong> is a <em>general purpose</em>, <a class="lpdoc-idx-anchor" id="0" href="ciaosearch.html#multi-paradigm"><em>multi-paradigm</em></a> programming language in the Prolog family. Its modular design allows working with <em>fully declarative subsets</em> of Prolog and also to <em>extend</em> these subsets 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, providing both clear program semantics and the precise assumptions required to perform effective global program analysis and static debugging and optimization.<p>The Ciao language is intended to support several kinds of uses: <ul> <li><strong>Ciao</strong> can be used as <em>a classical Prolog</em> and <em>logic programming</em> system. It includes standard <strong>ISO-Prolog</strong> as a sublanguage and a program development environment similar to that of traditional Prolog and <em>constraint logic programming</em> (CLP) implementations. The <strong>Ciao</strong> programming environment includes a classical top level and a rich Emacs interface with an embeddable source-level debugger, a number of execution visualization tools, and several useful extensions such as alternative control rules (breadth-first search, iterative deepening, ...), and several constraint domains.<p><li><strong>Ciao</strong> includes many <em>modern general-purpose programming language</em> features and idioms, such as functions, higher-order (with predicate abstractions), mutables, records, persistence, concurrency (threads/engines), parallel execution, or distributed execution. <strong>Ciao</strong> includes an <strong>assertion language</strong> for declaring (<em>optional</em>) program properties, automatic static inference and static/dynamic checking of such assertions, testing, documentation, etc. (some tasks performed by the <strong>CiaoPP Program Processor</strong> (<a class="lpdoc-idx-anchor" id="1" href="ciaosearch.html#ciaopp"><tt>ciaopp</tt></a>)). <p><li><strong>Ciao</strong> supports <em>programming in the large</em> with separate/incremental compiler, an integrated build system, an automatic documentation generator (<a class="lpdoc-idx-anchor" id="2" href="ciaosearch.html#lpdoc"><tt>lpdoc</tt></a>), and a set of standard and contributed libraries providing useful data structures, access to the operating system and networking, Web programming, as well as foreign interfaces, and several bindings to different languages and systems. <p><li><strong>Ciao</strong> supports <em>programming in the small</em> through its dynamic language features (dynamically typed, dynamic program modification). It supports producing small executables (including only those libraries actually used by the program) and writing scripts.<p><li><strong>Ciao</strong> is also a very good platform for experimenting with new language features, languages, analyses, and program transformations.<p></ul> <p>The <strong>Ciao</strong> distribution consists in a complete <a class="lpdoc-idx-anchor" id="3" href="ciaosearch.html#public domain"><em>public domain</em></a>, open-source implementation, very competitive with other commercial and academic languages (including other Prolog/CLP systems), and distributed under the <a class="lpdoc-idx-anchor" id="4" href="ciaosearch.html#GNU Library General Public License (LGPL)">GNU Library General Public License (LGPL)</a>. <p><br/><p>This documentation corresponds to version 1.22 (2022/9/28, 17:41:23 CET).
</div><h2>Parts of this manual</h2><ul><li><a href="ciaointro.html">Introduction</a></li><li><a href="GettingStarted.html">Getting started</a></li><li><a href="DevEnv.html">PART I - The program development environment</a></li><li><a href="BasicLang.html">PART II - The Ciao basic language</a></li><li><a href="AssrtLang.html">PART III - Assertions and auto-documentation</a></li><li><a href="ExtendLang.html">PART IV - Language extensions</a></li><li><a href="CompatProlog.html">PART V - Compatibility</a></li><li><a href="DataStructuresAlgs.html">PART VI - Data structures and algorithms</a></li><li><a href="StdLibs.html">PART VII - Standard libraries</a></li><li><a href="ExtraLibs.html">PART VIII - Additional libraries</a></li></ul><div class="lpdoc-footer">Generated with LPdoc using Ciao</div></div><div class="lpdoc-clearer"></div></div></body></html>