Двухуровневая грамматика

Jan 17, 2023 23:53

В Алгол-68 использовалась грамматика Ван-Вийгаартена: одна часть грамматики порождает правила для другой части. Таким образом, при синтаксическом разборе "a + b" невозможно было сложить переменную с числом a и переменную со строкой b - такого правила разбора. А вот "a + a", "0 * a" и так далее вполне существовали.

Разбор в Алголе был последовательный и правила создавались для областей видимости.

В Хаскеле, однако, есть возможность описать символ, что может быть использован до его описания. Поэтому у меня вопрос: а можно ли сделать синтаксический разбор двухуровневых грамматик в произвольном направлении, и даже параллельным, всего текста сразу?

Это довольно-таки праздный вопрос, конечно.

Однако, если можно воткнуть алгоритм унификации в синтаксический разбор и получать сообщения, что «"a + b" неверно потому, что вместо b ожидается q, p или d, ибо они вот так ограничены», это же довольно удобно будет.

языки программирования

Previous post Next post
Up