| パラダイム | ロジック、関数型、モジュール型、オブジェクト指向 |
|---|---|
| 初登場 | 1984年 |
| OS | クロスプラットフォーム( Unix、Mac OS X、Windows ) |
| ライセンス | GPL、LGPL |
| Webサイト | 翻訳元: |
| 影響を受けた | |
| プロローグ | |
Ciaoは、ロジック、制約、関数、高階、オブジェクト指向のプログラミングスタイルをサポートする汎用プログラミング言語です。その主な設計目標は、高い表現力、拡張性、安全性、信頼性、効率的な実行です。[1]
言語特性
Ciao は、完全なPrologシステム ( ISO -Prolog をサポート)、Prolog の宣言型サブセットと拡張、関数型プログラミング(遅延評価を含む)、高階プログラミング (述語抽象化を使用)、制約プログラミング、オブジェクト、および機能用語 (レコード)、永続性、いくつかの制御ルール (幅優先探索、反復深化など)、並行性(スレッド/エンジン)、分散実行 (エージェント)、並列実行を提供します。ライブラリは、WWW プログラミング、ソケット、外部インターフェイス ( C、Java、TclTk、リレーショナル データベースなど) など もサポートします。
Ciao は、言語の制限と拡張の両方を可能にする拡張可能なモジュール設計のカーネル上に構築されており、言語構築言語として見ることができます。これらの制限と拡張は、各プログラム モジュールで個別に有効にできるため、同じアプリケーションで異なるモジュールに対して複数の拡張を共存させることができます。
安全で信頼できるプログラムの開発
Ciao での大規模なプログラミングは以下によってサポートされます:
- 堅牢なモジュール/オブジェクト システム。モジュール ベースの個別/増分コンパイル (makefile を必要とせず自動的に実行) を提供します。
- プログラムのプロパティ (仕様) (オプション) を宣言するための統合アサーション言語。これには、型、モード、決定性、非障害性、コスト (時間、メモリ) などが含まれます。
- このようなアサーションの自動推論と静的/動的チェック (ユニット テストを含む)。
Ciao は小規模なプログラミングもサポートしています。コンパイラは小さな実行可能ファイル (プログラムで使用される組み込みのみを含む) を生成でき、インタープリタはスクリプトをサポートします。
この環境には、従来のトップレベル インターフェイスと、埋め込み可能なソース レベル デバッガーと多数の実行視覚化ツールを備えた進化した emacs インターフェイスが含まれています。
Ciao プリプロセッサは、ソースからソースへのプログラム変換による静的デバッグと検証アサーション チェックおよび最適化をサポートします。これらのタスクは Ciaopp (別途配布) によって実行されます。
自動ドキュメント化
Ciao には、自動ドキュメント生成ツールlpdocが含まれています。これは、(Ciao) アサーションと機械可読コメントで装飾されたプログラムを処理し、HTML、pdf、texinfo、info、man などのさまざまな形式のマニュアル、オンライン ヘルプ、ASCII README ファイル、マニュアルのインデックスのエントリ (info、WWW など) を生成し、WWW 配布サイトを維持します。
携帯性と効率性
Ciao コンパイラ (トップレベル シェルの外部で実行可能) は、アーキテクチャに依存しないスタンドアロン実行可能ファイルのいくつかの形式を生成します。これらの実行可能ファイルの速度、効率、実行可能ファイル サイズは、一般に他の高水準言語、特に商用および学術的な Prolog/CLP システムと非常に競争力があります。モジュールは、コンパクトなバイトコードまたは C ソース ファイルにコンパイルでき、静的、動的、または自動ロードでリンクできます。
参照
さらに読む
- Manuel V. Hermenegildo 他 (2011)。「Ciao とその設計哲学の概要」。arXiv : 1102.5497 [ cs.PL]。
- Ciao 開発チーム。「Ciao システム ホーム」。
- Enrico Pontelli (編)。「CIAO マルチパラダイム言語およびプログラム開発環境」。
- Kei Davis、Jörg Striegnitz (2007 年 7 月 30 日)。オブジェクト指向言語におけるマルチパラダイム プログラミング: ワークショップ MPOOL'07 の最新研究レポート。ECOOP'07 2007 年オブジェクト指向テクノロジ カンファレンスの議事録。pp. 13–26。ISBN 978-3-540-78194-3。
参考文献
- ^ 「Ciao システム」ciao-lang.org . 2017 年 8 月 12 日閲覧。
