Ответ 1
Я не сравнивал, но Lua - это язык, известный своим простым синтаксисом. BNF находится в самом конце этого справочного руководства: http://www.lua.org/manual/5.1/manual.html.
Какой язык программирования имеет короткие и красивые грамматики (в EBNF)?
Некоторые языки легче разбираться. Некоторое время назад я создал простой парсер VHDL, но он был очень медленным. Не потому, что он полностью реализован в Python, а потому, что грамматика VHDL (в EBNF) огромна. EBNF Python красив, но он не очень короткий.
Я полагаю, что многие языки программирования, такие как LISP, имеют короткие простые грамматики, но меня интересует более популярный простой императивный язык, такой как C или Bash.
Я не сравнивал, но Lua - это язык, известный своим простым синтаксисом. BNF находится в самом конце этого справочного руководства: http://www.lua.org/manual/5.1/manual.html.
Одним из простейших императивных языков является Oberon-2. Синтаксис Oberon-2.
Также взгляните на Oberon-07 (Язык программирования Oberon-07, PDF) и Component Pascal.
... в общем, и особенно для процессоров, которые имеют простую архитектуру (несколько инструкций, несколько режимов адресации, несколько регистров) имеют относительно короткую грамматику.
Фактически, специализированные процессоры, такие как обнаруженные в программируемых логических контроллерах, могут иметь язык с еще более простыми грамматиками. Но опять же самый простой из ПЛК - это не что иное, как калькуляторы булевых уравнений.
Паскаль имеет только 2-3 страницы нот BNF
Как насчет GL Shading language? Спецификация языка (PDF)
Однако для такого рода увлечений я всегда предпочитал реализовать подмножество известного языка самостоятельно, не выбирая ничего "готового".
Lisp, вероятно, довольно маленький.
lisp ::= `(´ exp `)´
Можете ли вы предоставить ссылку на грамматику LISP