OberonCore https://forum.oberoncore.ru/ |
|
Вопрос по EBNF https://forum.oberoncore.ru/viewtopic.php?f=61&t=2601 |
Страница 1 из 1 |
Автор: | Alexey Veselovsky [ Вторник, 27 Апрель, 2010 01:23 ] |
Заголовок сообщения: | Вопрос по EBNF |
В EBNF описании синтаксиса оберона имеем следующее: Код: Module = MODULE ident ";" [ImportList] DeclSeq [BEGIN StatementSeq] END ident ".". Я правильно понимаю, что это описание синтаксиса не запрещает например такой исходник: Код: MODULE A; END B. Т.е. о том что ident'ы должны быть одними и теми же мы просто описываем словами в спецификации языка. |
Автор: | igor [ Вторник, 27 Апрель, 2010 05:42 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Alexey Veselovsky писал(а): Я правильно понимаю, что это описание синтаксиса не запрещает например такой исходник: Да. Правильно.То что ident'ы должны быть одинаковыми - это семантическое правило, а РБНФ описывает только синтаксис. При разборе в текст обычно вставляются семантические процедуры, которые контролируют выполнение семантических правил. Считается, что семантика, в отличие от синтаксиса, слабо формализуется. Поэтому аналогичных "семантических форм" не существует. |
Автор: | Trurl [ Вторник, 27 Апрель, 2010 08:15 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
igor писал(а): То что ident'ы должны быть одинаковыми - это семантическое правило, а РБНФ описывает только синтаксис. Нет, это синтаксическое правило. Просто синтаксис оберона, да и большинства языков, не описать КС-грамматикой. |
Автор: | Alexey Veselovsky [ Вторник, 27 Апрель, 2010 08:17 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Alexey Veselovsky писал(а): Есть вроде как более мощные нотации которые позволяют описывать многое. Например грамматика ван Вейнгаардена. Конечно, есть - и каждый сам её может придумать Нагрузите БНФ-правила дополнительными проверяющими функциями - и делов-то. Как это делается в любом компиляторе компиляторов. Илья Ермаков: по техническим причинам повреждено сообщение. Текст про проверяющие функции принадлежит мне, Алексей в этом сообщении сказал то, что стоит в цитате. |
Автор: | Rifat [ Вторник, 27 Апрель, 2010 08:27 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Еще в Обероне можно писать так: Код: MODULE A CONST TYPE VAR PROCEDURE P; END P; END A. То есть можно еще писать процедуры без BEGIN, и секции CONST TYPE VAR без описаний переменных. |
Автор: | igor [ Вторник, 27 Апрель, 2010 08:48 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Trurl писал(а): igor писал(а): То что ident'ы должны быть одинаковыми - это семантическое правило, а РБНФ описывает только синтаксис. Нет, это синтаксическое правило. Просто синтаксис оберона, да и большинства языков, не описать КС-грамматикой. |
Автор: | Alexey Veselovsky [ Вторник, 27 Апрель, 2010 08:50 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Rifat писал(а): Еще в Обероне можно писать так: Код: MODULE A CONST TYPE VAR PROCEDURE P; END P; END A. То есть можно еще писать процедуры без BEGIN, и секции CONST TYPE VAR без описаний переменных. Только вместе с BEGIN'ом мы выплескиваем и всю пачку statement'ов что в процедуре содержится, зато локальных переменных можем понаписать, это да. Кстати, это подозрительно напоминает Forward Declaration |
Автор: | Александр Ильин [ Вторник, 27 Апрель, 2010 10:30 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Alexey Veselovsky писал(а): Кстати, это подозрительно напоминает Forward Declaration :-) Процедура без тела иногда используется для объявления абстрактного метода.
|
Автор: | Сергей Губанов [ Вторник, 27 Апрель, 2010 22:52 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
igor писал(а): Разве? Синтаксис не апеллирует к смыслу, по определению. Совпадение имён проверяется парсером. Правила проверяемые парсером - синтаксические (в каком-то общем смысле).
|
Автор: | igor [ Среда, 28 Апрель, 2010 05:47 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Парсер выполняет грамматический разбор. Грамматика включает в себя и синтаксис, и семантику. К счастью, синтаксис языков программирования - это вполне определённое понятие. Считаю, что обобщение этого термина в данном случае неуместно. |
Автор: | Info21 [ Среда, 28 Апрель, 2010 06:56 ] |
Заголовок сообщения: | Re: Вопрос по EBNF |
Вообще говоря, грамматика вещь больше синтаксическая, хотя жесткой границы нет и бывают разные исключения (отчего, конечно, диспуты). Например, "взять шуруп", но "взять поциента". Можно, конечно, мыслить себе список одушевленных существительных как существующий и фиксированный (как список ключевых слов), но тут зыбко. |
Страница 1 из 1 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |