2016-02-26 4 views
4

в этом site, я нашел ту часть, которая объясняет, как построить правую руку Контекстной нотации с использованием DCGправого контекст Notation [DCG]

A → ε | a A 

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

кто-то поможет мне понять этот метод, например, и иллюстрирует его преимущества для анализа контекстно-свободной грамматики

+1

Это устаревшая терминология. Пожалуйста, используйте текст DCG, который лучше поддерживается. – mat

+2

@mat Это устаревшая терминология! можете ли вы объяснить больше –

ответ

3

Эта нотация называется semicontext. См., Например, this answer. С его помощью у вас есть больше энергии, чем контекстно-свободные грамматики. На самом деле, это уже типа 0.

+1

thnks, я нашел интересную статью [-ISO/IEC DTR 13211-3: 2006] (http://www.complang.tuwien.ac.at/ulrich/iso-prolog/dcgs/dcgsdraft-2015 -11-10.pdf), и я нашел определение semicontext в главе 7.13.3. –

+1

@ AnsPiter: Верно, это самая последняя версия. – false

2

Посмотрите на Semicontext нотации в DCG Primer: это хорошо объяснено, с примерами

+0

thnks, о 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), иногда и потому, что фраза_from_file может быть сложной для отладки ... Конечно, файл не должен быть огромным. – CapelliC

+2

Кажется, он недоступен в SICSTUS ... но должен быть легко реализован с помощью read_line (для кодов) – CapelliC

Смежные вопросы