2016-02-26 36 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