ISO/IEC 13211-2:2000 情報技術—プログラミング言語—プロローグ—パート2:モジュール | ページ 3

※一部、英文及び仏文を自動翻訳した日本語訳を使用しています。

序章

これは Prolog の最初の国際標準であり、 2 (モジュール) 2000 年 5 月 1 日に製造されました。

Prolog (Programming in Logic) は、論理プログラミングとアルゴリズム プログラミングの概念を組み合わせたもので、AI (人工知能) やエキスパート システムの重要なツールとしてだけでなく、独自の特性を持つ汎用の高レベル プログラミング言語として認識されています。

この言語は、ロバート A. コワルスキー (Robert A. Kowalski) による 1970 年代初頭のエジンバラ大学 (そしてそれ以来ロンドンのインペリアル カレッジ) とフランスのエクス マルセイユ大学のアラン コルメラウアーによる研究に端を発しています。彼らの努力は、1972 年にプログラミング言語の基礎として形式論理を使用することにつながりました。コワルスキーの研究は理論的枠組みを提供し、コルメラウアーの研究はプログラミング言語 Prolog を生み出しました。その後、Colmerauer と彼のチームが最初のインタープリターを作成し、エジンバラ大学 AI 部門の David Warren が最初のコンパイラーを作成しました。

Prologue の重要な機能は、統合とバックトラックです。統一は、任意の 2 つの構造を等しくする方法を示しています。Prolog プロセッサは、特定の検索が行き詰った場合に他のパスに戻ることによって、問題の解決策を見つけようとする検索戦略を採用しています。

Prolog は、複雑なデータ構造を動的に構築するのが容易であり、操作を取り消すという概念が言語に組み込まれているため、ウィンドウ操作やマルチメディアに適しています。 Prolog は、テキストの作成と分析の両方に適しているため、インタラクティブな Web アプリケーションにも適しています。

この国際標準は、ISO Prolog のモジュールの構文とセマンティクスを定義します。 Prolog モジュールの国際標準は他にありません。

Prolog のモジュールは、小さなコンポーネントから大規模なシステムを構築する目的で、名前空間を分割し、カプセル化をサポートするのに役立ちます。モジュール システムは、atom ベースではなくプロシージャ ベースです。これは、各プロシージャが特定の名前空間で定義されることを意味します。 Prolog モジュールの要件は、状況依存の手順が存在するため、より複雑になります。

Introduction

This is the first International Standard for Prolog, 2 (Modules). It was produced on May 1, 2000.

Prolog (Programming in Logic) combines the concepts of logical and algorithmic programming, and is recognized not just as an important tool in AI (Artificial Intelligence) and expert systems, but as a general purpose high-level programming language with some unique properties.

The language originates from work in the early 1970s by Robert A. Kowalski while at Edinburgh University (and ever since at Imperial College, London) and Alain Colmerauer at the University of Aix-Marseilles in France. Their efforts led in 1972 to the use of formal logic as the basis for a programming language. Kowalski's research provided the theoretical framework, while Colmerauer's gave rise to the programming language Prolog. Colmerauer and his team then built the first interpreter, and David Warren at the AI Department, University of Edinburgh, produced the first compiler.

The crucial features of Prolog are unification and backtracking. Unification shows how two arbitrary structures can be made equal, and Prolog processors employ a search strategy which tries to find a solution to a problem by backtracking to other paths if any one particular search comes to a dead end.

Prolog is good for windowing and multimedia because of the ease of building complex data structures dynamically, and also because the concept of backing out of an operation is built into the language. Prolog is also good for interactive web applications because the language lends itself to both the production and analysis of text, allowing for production of HTML 'on the fly'.

This International Standard defines syntax and semantics of modules in ISO Prolog. There is no other International Standard for Prolog modules.

Modules in Prolog serve to partition the name space and support encapsulation for the purposes of constructing large systems out of smaller components. The module system is procedure-based rather than atom-based. This means that each procedure is to be defined in a given name space. The requirements for Prolog modules are rendered more complex by the existence of context sensitive procedures.