Это неправильная онлайн-версия стандарта EBNF или неверное название главы mr. Паттис?

Я читаю EBNF: обозначение для описания синтаксиса глава MR. Ричард Э. Паттис. Его материал для меня очень полезен и понятен. Но перед этим я прочитал ISO / IEC 14977: 1996 (E) стандарт ... Я вижу обозначения и синтаксис EBNF, написанные г-ном. Ричард Э. Паттис не такой, как в стандарте. Я не понимаю причину этого ...

Например, стандарт пишет:

a) Конечные символы языка заключаются в кавычки, так что любой символ, включая тот, который используется в Extended BNF, может быть определен как конечный символ определяемого языка.

Но мистер. Паттис не использует кавычки в собственных образцах. Вдобавок он использует неудобный способ написания нетерминальных символов в качестве терминальных: например, | char, который он помещает в поле (похоже, граница вокруг символа в MS Word). Обычные текстовые редакторы не могут этого сделать. Поэтому этот способ неудобен.

Также стандарт пишет:

г) Каждое правило имеет явный финальный символ, так что никогда не возникает двусмысленности относительно того, где заканчивается правило.

Но мистер. Паттис не использует финальные символы в собственных сэмплах.

Согласно стандарту символ "=" является определяющим-символом, но mr. Паттис использует вместо этого буквы «⇐».

и т.д

Пример кода главы:

digit   ⇐ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
integer ⇐ [+|-]digit{digit}

Для сравнения: в ISO / IEC 14977: 1996 (E) standard каждая цифра изолирована кавычками, а точка с запятой используется в качестве последнего символа:

decimal digit = ’0’ | ’1’ | ’2’ | ’3’ | ’4’ | ’5’ | ’6’ | ’7’ | ’8’ | ’9’;

Наличие слова «EBNF» в названии главы меня смущает ... Может быть, слово «BNF» надо писать вместо слов «EBNF» в названии главы? А может я нашел неправильный вариант стандарта?

Дополнительный вопрос: кто-нибудь знает адреса форумов, где я могу задать свои вопросы о EBNF и его стандарте? Я еще ничего не нашел ...

С уважением, Андрей


person Andrey Bushman    schedule 24.06.2015    source источник
comment
EBNF в Википедии: используется много вариантов EBNF ... В других вариантах EBNF используются несколько иные синтаксические соглашения.   -  person Damien_The_Unbeliever    schedule 24.06.2015
comment
Спасибо. Я не знал, что альтернативы также называют EBNF. Я ожидал, что EBNF означает только EBNF по ISO / IEC 14977: 1996 (E), потому что существует стандарт.   -  person Andrey Bushman    schedule 24.06.2015
comment
Интересно, есть ли какое-то реальное применение в формализме, определенном и смутно следовавшем этому ... Я пытался найти валидатор EBNF, и мне удалось найти только один инструмент, который фактически следует стандартной нотации ISO EBNF: a bnf syntax checker from icosaedro.   -  person sunny moon    schedule 01.07.2016
comment
это тоже не ISO ... нет поддержки конкатенации , или нетерминальных имен, содержащих - (?)   -  person stefanct    schedule 13.08.2016


Ответы (1)


Мой учебник - это первая лекция, которую я читаю во введении в классы программирования: я преподаю EBNF как язык мини-программирования, который включает именованные правила (например, функции) и управляющие структуры (последовательность, если, цикл, рекурсия). Студенты учатся на языковых юристов (определение соответствия строк правилам EBNF) и программистов (синтезирование правил EBNF из описаний на английском языке, включая положительные и отрицательные примеры).

Поэтому моя цель - не обучать кого-либо стандарту ISO, а научить абсолютных новичков простейшей форме EBNF.

Рич Паттис

person Richard Pattis    schedule 10.11.2016
comment
Чтобы все остальные рецензенты могли проголосовать за закрытие, он утверждал, что является автором книги, упомянутой в вопросе. - person Danh; 11.11.2016