Код: Выделить всё
a b(c);
Если вы посмотрите определение контекстно-свободных языков, оно в основном скажет вам, что все грамматические правила должны иметь левые части, состоящие ровно из одного нетерминального символа. С другой стороны, контекстно-зависимые грамматики допускают размещение произвольных строк терминальных и нетерминальных символов в левой части.
Просматривая Приложение А к «Языку программирования C++», я не смог найти ни одного грамматического правила, в левой части которого было бы что-нибудь еще, кроме одного нетерминального символа. Это означало бы, что C++ является контекстно-свободным. (Конечно, каждый контекстно-свободный язык также является контекстно-зависимым в том смысле, что контекстно-свободные языки образуют подмножество контекстно-зависимых языков, но дело не в этом.)
Итак, является ли C++ контекстно-свободным или контекстно-зависимым?
Подробнее здесь: https://stackoverflow.com/questions/145 ... -sensitive
Мобильная версия