Size: a a a

Compiler Development

2020 December 19

KR

K R in Compiler Development
Причём за одни и те же деньги.
источник

M

MrSmith in Compiler Development
Может кто объяснить чем отличаются терминалы не терминалы токены и символы
источник

D

Danya in Compiler Development
MrSmith
Может кто объяснить чем отличаются терминалы не терминалы токены и символы
Терминал это минимальное значение в программе — литералы, ключевые слова
Нетерминалы — правила грамматики конкретные — expressions, statements, и т. п.
источник

M

MrSmith in Compiler Development
Вот тут и начинается каша, почему не просто rule
источник

M

MrSmith in Compiler Development
А иногда в текстах и rule и non terminal
источник

а

а это кто in Compiler Development
MrSmith
Может кто объяснить чем отличаются терминалы не терминалы токены и символы
терминал это токен
нетерминал это буква которая может раскрываться в другие буквы

слева от стрелки всегда нетерминалы
источник

KR

K R in Compiler Development
MrSmith
А иногда в текстах и rule и non terminal
В програзме часто одно и то же называется пятью разными словами.
источник

M

MrSmith in Compiler Development
Ну тоесть правила и не терминалы эквивалентны?
источник

M

MrSmith in Compiler Development
Тогда такой ещё вопрос терминал и символ эквивалентны?
источник

KR

K R in Compiler Development
По идее - да (правила == не терминалы, терминал == символ). А вы точно про BNF грамматики читаете?
источник

M

MrSmith in Compiler Development
Да черт его знает читаю про парсер ерли
источник

KR

K R in Compiler Development
То есть, обычно в парсерах, как программах терминология token/rule. А в теории - терминалы и не терминалы.
источник

KR

K R in Compiler Development
Если открыть документацию по bison, там будут rule.
источник

KR

K R in Compiler Development
источник

KR

K R in Compiler Development
Но описывают они нетерминалы.
источник

M

MrSmith in Compiler Development
источник

M

MrSmith in Compiler Development
Или и то и то
источник

KR

K R in Compiler Development
Вообще, rule - это некоторое правило, которое выполняет виртуальная машина, а нетерминал - это символ. То есть, вы про себя говорите "здрасте", когда читаете слово "здравствуйте" в книге. Вот примерно так они и соотносятся.
источник

M

MrSmith in Compiler Development
Ну то что нетерминалы тоже символы конечно добивает мозг
источник

KR

K R in Compiler Development
Rule - что нужно сделать, встретив такой символ. Символ == терминал | нетерминал.
источник