宣言型プログラミング言語: Prolog
Prologは、生産性の高い宣言型プログラミング言語です。 従来のC やPascalなどの「手続型」言語では、マシン側から必要とされる 手続きを書く必要がありましたが、 Prologのプログラマーは実装 レベルでの概念にわずらわされることなく、応用分野での概念のみに 集中し、アプリケーションの記述を進めることができます。
例えば、Prologはメモリ管理を自動的に行なうので、プログラマーは エラーをおこしがちなメモリ管理を行なう必要はありません。また、 ポインタを使うことなく、常に明確な名前を使ってプログラミングを 行ないます。探索・パターンマッチング・バックトラッキングによる 別解答の生成機能は、Prologの中に組み込まれており、基本的でかつ 力強い問題解決手段となっています。 さらに、IF/Prologには、より 強力な機能があります。バイナリツリーやハッシュテーブルが自動的に 生成されるので、IF/Prologは、高い実行性能とスケーラビリティを 達成しつつ、プログラマからはリニア的な観点で見えかつ生産性と わかりやすさも達成します。
この結果、Prologプログラム自体も、応用分野の専門家の問題解決 プロセスに近いものとなります。プログラムはより簡潔で、保守 しやすく、アイデアから商品化のサイクルを短くすることができ ます。
Prologの簡便さにより、プログラムの一部のみを作り上げ、走らせ、 検証することができます。つまり、Prologではコードをトップ ダウン形式で仕上げることがきますので、時間が経つにつれ次第に 完成形に近付きます。 そして、プロトタイプを作った後にそれを 捨ててしまい、新たに最終的なプログラムを作る必要はありません。 この結果、開発者は、開発時間を節約し、継続的にフィードバックを 与えられ、かつ革新的なアプリケーションの品質を確保できます。
一言でまとめると以下の通りです: Prologは柔軟で完成度の高いプログラミング言語で、低レベルのマシン概念にとらわれず、低レベルのコーディングや最適化を行なう必要がありません。 IF/Prologは、高いプログラマ生産性と高い実行性能を兼ね備えています。
IF/Prologは、産業応用を目指して設計・開発されました。世界中の 様々な分野の現実の業務用エキスパートシステムや従来型のアプリ ケーションで使用されています。 企業は、進んだ問題解決能力のみならず、単純にプログラマの利便性 および生産性の為にIF/Prologを選択しています。
例えば、弊社は戸田建設株式会社の発注を受け、 泥水加圧シールド集中管理システムを開発しました。これは、東京での海面高度以下におけるトンネル工事のための集中管理システムで、異常・起こり得る危険・採り得る解決方法をリアルタイムで予測します。
ドイツでは、InterFace Computer GmbH社は、ドイツ郵政省の発注を受け、IF/Prologにより、電話の構成、販売支援のための知識ベースシステムを開発しました。このシステムは数多くの電話モデルやオプション機能の中から、顧客に最も適した組合せを選ぶための支援を行ないます。
以下に上記以外の例をいくつか紹介します。
IF/Prologは、パーソナルコンピュータ、ワークステーション、 スーパーコンピュータ、その他の特殊用途マシン上で作動します。 イフコンピュータは、通常新しいマシンが市場に出る前に、 IF/Prologをポーティングしますので、お客様は常に、アプリケー ションに合ったプラットフォームを選び、より良いプラットフォーム が市場に出た場合には、それに移行することができます。長いライフ サイクルを持つ大規模なアプリケーションを開発する場合、 ポーティングのコストのみを考えても、多くのマシン上での互換性を 持つIF/Prologを選択するメリットがあります。
対応チップ: Alpha, HPPA, MIPS, 80x86,Pentium, Power, SPARC, 68K, 88K, その他 対応OS: 主要UNIX, Windows
IF/PrologV5.0は、ISO Prolog標準Part1に完全に準拠しています。 Siemens AGとIF Computerは、 DIN、JIS、ISO標準化プロセスに積極的に関わってきました。
IF/Prologは、ANSI Cによって実装され、その開発工程は、 ISO 9000品質標準にも準拠しています。
SiemensとIF Computerは、Prologマネジメントグループ(PMG)において、 他のPrologのベンダーと協力し標準化に取り組んでいます。
制約処理パッケージは、IF/Prologに最新の制約に基づいた問題解決 手段を導入しました。これにより、航空・鉄道での運航計画、生産 計画、乗務員などの人員配置計画を始めとする資源割り当ての課題 などの複雑な組合せ問題を、扱えるようになりました。
Prologと制約処理機能との組合せにより、従来Prologのみでは扱う のが難しかったオペレーションリサーチの問題も扱えるようになり ました。
Prologのプログラミングは、制約処理機能が探索空間を限定するので、 Prologの探索機能を使った探索は、より効率的に行なえるようになり ました。
制約処理パッケージでは、 長精度整数と有理数、コルーチン、数値的制約、有限領域、論理制約 を扱うことができます。
UNIX版IF/Prologでは、グラフィカル・ユーザ・インタフェース (GUI)開発ツールとのインタフェース (OSF/Motifインタフェース)があります。
第1に、このインタフェースを使用すると、開発自体をウィンドウ上で 行ない、オンラインヘルプ機能などのプログラミングを簡単化する 多くのツールを使い、画面上での制御を行なうことができます。
第2に、Prologで直接アプリケーション用のGUIを書くことができます。 洗練され、複合的、ダイナミックなデータ構造を持つGUIを開発する 場合には、Prologの上で挙げたプロトタイピングの手法、自動メモリ 管理、ポインタの代わりに名前を使用するというPrologの特長が十分に 生かされます。そして、CあるいはC++でプログラミングする場合に 比べてかなり簡単です。ウィンドウイベントは、対話的なウィンドウ ベースデバッガを使用することにより、シンクロナイズされます。 さらに、Prologのコードはソースコードが簡単にリコンサルトされる ので、テスト毎に再リンクする必要がなく、開発時間を節約すること ができます。
Windows版IF/Prologでは、グラフィカル・ユーザ・インターフェース によって、コンサルト、ロード、デバッグ、トレース、コンパイル 昨日へのアクセスをすばやく行うことができます。ハイパーテキスト マニュアルもデータベースブラウザ−もあります。
IF/Prologは、業界標準のデータベースに直接アクセスするインタ フェースを提供しています。これを利用して、より拡張的な開発を 行なうことができます。
UNIX版: SQL関係データベース(Oracle、Informix、Ingresなど)
Windows版: MS Accessなど(DDEMLインタフェース、COMインタフェース、ADOを介して)
SQL関係データベースとのインタフェースはオプションです。 DDEMLインタフェース、COMインタフェース、ADOは、Windows版に含まれています。
Cインタフェースと同じように、Javaとの双方向のインタフェースを提供します。 IF/Prologは、Javaクラスを介して呼ばれる、あるいは、Javaで実装された 述語を含むことができます。 現在のところ、Javaインタフェースを含むv5.3は、Windows版のみリリースしています。
CおよびC++との柔軟な双方向のインタフェースにより、Prologの 中からCの手続きを呼び出したり、Cのプログラム中にIF/Prologの プログラムを埋め込み、Prologをインテリジェントサーバとして 使うことができます。C++のクラス定義は使えません。実際の業務で 使用されるアプリケーションに使われる際により重要になるこのイン タフェースの特長は以下の通りです。
IF/Prologでは、完全なソケットサポートをしています。
インターネットソケットと高度入出力ストリームを直接 サポートしているので、 IF/Prologは、インターネット/イントラネット上の アプリケーションに組み込んで、 知的タスクを実現することができます。
また、ソケットサポートによって、クライアントサーバーアプリケーション の開発を容易にします。 ソケット接続を介して存在する複数の入出力ストリームをサポート する組み込み述語により、複数のクライアントとサーバ間でトランスアクション を容易に引き渡すことができます。
IF/Prologのカーネルは、高い精度とメモリ効率を提供する最新の Prologエンジンです。
ガーベジコレクションは、Cで定義されたユーザ述語の実行中でも行な うことができます。また、アトム、複合項の数の限界も存在しません。
IF/Prologはシングルバイト(8-bit)文字セットと、アジアの様々な 国語用のマルチバイト(16-bitと32-bit)文字セットの両方に対応しています。これに より、日本語・韓国語・中国語などのアジア言語を使って、プログ ラムおよびデータを書くことができます。
既存のアプリケーションのコードやパブリックドメインのProlog ライブラリを導入するために、ISO標準の厳しい構文条件を使わず、 エディンバラ構文を採用することができます。
IF/Prologを購入すると、6カ月間無償で保守を受けることができます。 保守には、電話・ファックス・電子メールによるサポート、依頼に 応じて、OSの変更に伴うIF/Prologのアップグレード、IF/Prolog新 バージョンへのアップデートサービスが含まれます。その後、保守は 一年ごとに保守契約により継続されます。(Windows版には保守 契約はありません。)
教育機関向け、複数ライセンス購入時には割引が適用されます。
イフ コンピュータでは、Prologを使用したプログラミングのための 実習中心の教育コースを提供しています。基礎コース、上級コースが あり、お客様の専門分野をテーマとして取り上げたワークショップも 行ないます。(IF/Tutorial)
また、お客様のニーズに合わせてエキスパートシステムやその他の 高度のアプリケーションを設計・開発するプロジェクトも請け負っ ています。 (IF/Projects)
IF/PrologはドイツのSiemens AGが 開発しました。販売・支援はドイツ・アメリカ・香港・日本に拠点 を持つIF Computer社が行なっています。
| 冒頭へ |
|