| 提供 田中 卓史 様: より低レベル電子(的)コンポーネント(トランジスタ、抵抗器)から、より高レベルの関数ブロック(操作増幅器、フェーズ・ロック・ループ)まで。
この美しいプログラムは、福岡工業大学の教授田中卓史氏によるDCSGプロジェクトの一部分です。 それは、エンジニアリング言語(ここでは電子回路)の分析、合成、処理のためのPrologの使用の実例です。
rules.minで与えられたDefinite Clause Set Grammarは、が使われるSet Grammarが40において示すDefinite Clauseは、コンポーネントがより大きい関数ブロックに結合されることができる方法を支配します。
ここで示されるプログラムは、2ステップで動きます。:
最初に、規則から、電子回路のためのパーサーが、生成されます。
次に、パーサーは電子回路を読んで、全てのそのコンポーネントを説明しようとします。すなわちその部分から、それは全体として回路の電子的機能の意味がある説明を見つけます。
回路cd67.min (data),
cd67.jpg(図)は、60のコンポーネントから成ります。
プログラムcircuit_analysis.minは、例となる回路上でパーサーを実行させて、以下の問い合わせで3326の意味がある機能単位Xを見つけます ?−cd67(Circuit), subset(X,Circuit,Rest).
、そして、完全な回路をX = "Phase Locked Loop"機能ブロックとして以下の問い合わせにより識別します。?−cd67(Circuit), subset(X,Circuit,[]).
分析には、2、3分の処理時間がかかります。
References
[1] Takushi Tanaka: "Definite-Clause Set Grammar: A Formalism for
Problem Solving", Journal of Logic Programming, Vol.10, No.1、
pp,1-17(1991)。
[2] Takushi Tanaka: "Parsing Electronic Circuits in a Logic Grammar"、
IEEE Trans. on Knowledge and Data Engineering, Vol.5, No.2、
pp.225-239(1993)。
Author
Takushi Tanaka博士
コンピュータ・サイエンスの教授
福岡工業大学
3-30-1, Wajiro-Higashi, Higashi-ku, Fukuoka 811-02, Japan
e-mail: tanaka@fit.ac.jp http://www.fit.ac.jp/~tanaka
|