2016-02-26 35 views
4

在這個site,我發現,說明如何使用DCG右手上下文符號[DCG]

打造右手上下文符號
A → ε | a A 

Head, [T_1,...,T_n] --> Body. 

有人幫助我,比如弄清楚這個方法並說明了部分其分析上下文無關語法的好處

+1

這是過時的術語。請使用更好維護的DCG文本。 – mat

+2

@mat這是過時的術語!你能解釋更多 –

回答

3

這種表示法被稱爲半導體文字。參見例如this answer。有了它,你擁有比上下文無關的語法更多的權力。事實上,它已經在DCG Primer鍵入0

+1

thnks,我發現一個有趣的文章[-ISO/IEC DTR 13211-3:2006(http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdraft-2015 -11-10.pdf),並在chap7.13.3中找到了semicontext的定義。 –

+1

@AnsPiter:對,這是最新的版本。 – false

2

查找Semicontext符號:它是很好的解釋,舉例

+0

thnks,about yr link,'phrase_from_file //'它在sicstus中不可用,是否有一個(簡單的)解決方案? –

+2

在SWI-Prolog的,我用[read_file_to_codes(http://www.swi-prolog.org/pldoc/doc_for?object=read_file_to_codes/3),有時也因爲phrase_from_file可能很難調試......當然,文件應該不是很大。 – CapelliC

+2

好像它不具備的SICSTUS ......但應該是很容易與read_line(以代碼) – CapelliC