2016-10-28 3 views
1

Hassan Aït-Kaci's "Warren's Abstract Machine: A Tutorial Reconstruction"第2.2節では、L0クエリのコンパイルの順序は十分に明確です。レジスタは左から右への幅優先サーチで割り当てられ、コードは左から右のポストオーダーの深さ優先検索で生成される必要があります。L0プログラムの用語用にWAMコードを生成する正しい順序はどれですか?

2.3では、(L0プログラムの)レジスタ割り当ての順序は、左から右への幅優先検索であることが明確です。コード生成の順序は異なります。唯一の例では、BFSまたはDFSを使用してコードを生成する必要があるかどうかはわかりません。

誰かが私に次のL0プログラムのWAMコードを教えてもらえますか?

p(q(r(a))、s(b))。

+0

[このレコを見てくださいmmendation](http://stackoverflow.com/a/14536068/772868)!. – false

答えて

2

私はsample.plでプログラムを置く:

 
$ cat sample.pl 
p(q(r(a)),s(b)). 

GNU Prologを使用して、私はそれからでした:

$ gplc -w sample.pl 

命令は、その後sample.wbcに含まれている以下のWAM:

 
clause(p(q(r(a)),s(b)),[ 
    get_structure(q/1,0), 
    unify_structure(r/1), 
    unify_atom(a), 
    get_structure(s/1,1), 
    unify_atom(b), 
    proceed]). 
+0

'.wam'ファイルを取得するのに' glpc -W'との違いは何ですか? – false

関連する問題