请输入您要查询的百科知识:

 

词条 Ciao (programming language)
释义

  1. Language Characteristics

  2. Developing Safe and Reliable Programs

  3. Auto-Documentation

  4. Portability and Efficiency

  5. Further reading

  6. References

{{Multiple issues|{{Notability|date=November 2015}}{{More citations needed|date=August 2017}}
}}{{Infobox programming language
| name = Ciao
| logo = Logo_for_Ciao_programming_language.png
| paradigm = Logic, functional, modular, object-oriented
| year = {{Start date and age|1984}}
| dialects =
| influenced_by = Prolog
| influenced =
| operating_system = Cross-platform (Unix, Mac OS X, Windows)
| license = GPL, LGPL
| website = {{URL|www.ciao-lang.org}}
}}Ciao is a general-purpose programming language which supports logic, constraint, functional, higher-order, and object-oriented programming styles. Its main design objectives are high expressive power, extensibility, safety, reliability, and efficient execution.[1]

Language Characteristics

Ciao provides a full Prolog system (supporting ISO-Prolog),

declarative subsets and extensions of Prolog, functional programming (including lazy evaluation), higher-order (with predicate abstractions), constraint programming, and objects, as well as feature terms

(records), persistence, several control rules (breadth-first search, iterative deepening, ...), concurrency (threads/engines), distributed execution (agents), and parallel execution. Libraries also support WWW programming, sockets, external interfaces (C, Java, TclTk, relational databases, etc.), etc.

Ciao is built on a kernel with an extensible modular design which

allows both restricting and extending the language — it can be seen as a language building language. 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.

Developing Safe and Reliable Programs

Programming in the large in Ciao is supported via:

  • A robust module/object system. This provides module-based separate/incremental compilation (which is automatic without need for makefiles).
  • An integrated assertion language for declaring (optional) program properties (specifications). These include types, modes, determinacy, non-failure, cost (time, memory), etc.
  • Automatic inference and static/dynamic checking of such assertions (including unit testing).

Ciao has also support for programming in the small: the compiler is

capable of producing small executables (including only those builtins

used by the program) and the interpreter supports scripting.

The environment includes a classical top-level and an evolved emacs

interface with an embeddable source-level debugger and a number of

execution visualization tools.

The Ciao preprocessor supports static debugging and verification

assertion checking and optimization via source to source program

transformation. These tasks are performed by Ciaopp, distributed

separately).

Auto-Documentation

Ciao includes lpdoc, an automatic documentation generator. It

processes programs adorned with (Ciao) assertions and machine-readable

comments and generates manuals in many formats including HTML, pdf,

texinfo, info, man, etc., as well as on-line help, ascii README

files, entries for indices of manuals (info, WWW, ...), and maintains

WWW distribution sites.

Portability and Efficiency

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 high-level languages in general

and in particular with commercial and academic Prolog/CLP

systems. Modules can be compiled into compact bytecode or C source

files, and linked statically, dynamically, or autoloaded.

Further reading

  • {{cite arXiv |arxiv=1102.5497|title=An Overview of Ciao and its Design Philosophy |author=Manuel V. Hermenegildo|display-authors=etal}}
  • {{cite web |url=http://ciaohome.org |title=The Ciao System Home |author=The Ciao Development Team}}
  • {{cite web |url=http://dtai.cs.kuleuven.be/projects/ALP/newsletter/nov06/content/Systems/content.html |title=The CIAO Multiparadigm Language and Program Development Environment |editor=Enrico Pontelli}}
  • {{cite web |url=http://portal.acm.org/citation.cfm?id=1787557 |title=Multiparadigm programming in object-oriented languages: current research report on the workshop MPOOL'07 |author=Kei Davis, Jörg Striegnitz |publisher=ECOOP'07 Proceedings of the 2007 conference on Object-oriented technology}}

References

1. ^{{Cite web|url=https://ciao-lang.org/|title=The Ciao System|website=ciao-lang.org|access-date=2017-08-12}}
{{DEFAULTSORT:Ciao (programming language)}}

10 : Logic programming languages|Functional languages|Functional logic programming languages|Cross-platform software|Dynamically typed programming languages|Free compilers and interpreters|Cross-platform free software|Object-oriented programming languages|Scripting languages|Text-oriented programming languages

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/9/21 19:31:37