| パラダイム | マルチパラダイム:関数型、オブジェクト指向(クラスベース)、ルール処理、リフレクティブ |
|---|---|
| デザイン: | イヴ・カソー |
| 初登場 | 1994年 |
| 安定リリース | 3.3.46 / 2009年2月17日 |
| タイピングの規律 | 静的にも動的にも強い |
| OS | クロスプラットフォーム |
| ライセンス | アパッチ2.0 |
| ファイル名拡張子 | .cl |
| Webサイト | クレアランゲージ |
| 主な実装 | |
| Claire (リファレンス実装)、WebClaire | |
| 影響を受けた | |
| Smalltalk、SETL、OPS5、Lisp、ML、C、LORE、LAURE | |
Claire は、ルール処理機能を備えた高水準関数型およびオブジェクト指向 プログラミング言語です。Bouyguesのe-Lab 研究ラボの Yves Caseau によって設計され、2004 年に最終的な定義が行われました。
クレアは以下を提供します:
- パラメトリッククラスとメソッドを備えたシンプルなオブジェクトシステム
- 多態的およびパラメトリック関数プログラミング
- イベントによってトリガーされる生成ルール
- システム全体または任意の部分の状態のバージョン付きスナップショット。ロールバックと検索スペースの簡単な探索をサポートします。
- エンティティ間の明示的な関係。たとえば、2つのエンティティが互いに逆であると宣言される場合があります。
- セットベースのプログラミングに便利な構文を備えたファーストクラスのセット
- 2次 静的型付けと動的型付けの両方を可能にする表現力豊かなセットベースの型システム
インタープリタとコンパイラーで構成されるClaire のリファレンス実装は、 2009 年 2 月のバージョン 3.3.46 のリリースで完全にオープンソース化されました。別の実装である WebClaire は、商用でサポートされています。
Claire には、2022 年からGo 言語で書かれた新しいリファレンス バージョン CLAIRE4 があります。ドキュメントと例が掲載された新しい Web サイトと、Github オープン ソース リポジトリがあります。
概要
Claire は、高度なデータ モデリング、ルール処理、または問題解決を必要とするアプリケーション ソフトウェアに最適な汎用プログラミング言語です。WebClaire は、オペレーティング システムとのより完全な統合とWeb アプリケーションのプログラミングのための拡張機能を追加します。
Claire は完全なプロジェクトに使用できますが、C++、Java、またはGoとスムーズに統合できるように設計されています。
Claire を他のプログラミング言語と区別する主要な機能セットは、複雑な最適化問題を解決した経験によって決定されました。OCaml、Scala、F# などの他の関数型/オブジェクト指向混合言語には見られない 2 つの機能は、バージョン管理と生成ルールです。
バージョンは、システムの一部のスナップショットのスタックとして考えることができます。必要に応じて、大きくしたり (表現力のため)、小さくしたり (効率のため) できます。バージョンの作成とロールバックにより、論理プログラミングで見られるバックトラッキングが可能になりますが、Claire のバックトラッキングは、論理変数のセットだけでなく、ユーザー定義の構造をカバーできます。
Claire の生成ルールは、イベント、条件、および条件が満たされた場合に評価される応答で構成されます。イベントは、オブジェクトのスロットの変更またはクラスのインスタンス化であり、応答自体がさらにイベントをトリガーする場合があります。このような生成ルールは、制約伝播などのリアクティブ アルゴリズムを記述する場合に特に便利です。
Claire は、1980 年代に Caseau によって設計され、多くのパラダイムを組み合わせた表現力豊かだが複雑な言語である LAURE の後継として作成されました。Claire は、前身よりも習得しやすく、C++ に比べてパフォーマンスのオーバーヘッドがかからないようにすることを目的としていました。そのため、制約や演繹規則などの機能を省いた非常に小さな言語であり、精神と構文の面でCに近いものとなっています。産業界での主なユーザーは、 BouyguesグループとThales グループです。新しい Claire 4 リリースでは、信頼性 (基盤言語としての Go の強みによる) とコンパイラーおよびインタープリターのパフォーマンスが向上しています。
例
n番目のフィボナッチ数列を計算する関数:
fib(n:整数) : 整数 -> (n < 2) 1の場合 そうでなければfib(n - 1) + fib(n - 2))
外部リンク
- 公式サイト
- GitHubの Claire4
- Claire4専用ウェブサイト
- ドキュメント、クレア、WebClaire
- Yves Caseau と François Laburthe による「Claire プログラミング言語バージョン 3.2 入門」
- 「クレア:集合、検索、ルールを組み合わせてアルゴリズムをより良く表現する[ permanent dead link ]」、Yves Caseau、François-Xavier Josset、François Laburthe (2002)。26ページの概要で、学術的な読者向けに書かれ、ベンチマークも掲載されています。
