Стандарт указывает официальную грамматику C++?
Я искал, но не нашел его нигде.
Кроме того, я хочу читать немного о грамматике C++ подробно, как которая категория грамматик это обрушивается и т.д. Любые ссылки, указывающие на меня в правильном направлении, были бы полезны.
По категориям я имею в виду
взятый отсюда.
Да, это так.
Грамматика подробно описана в стандарте и резюмирована в Приложении A: Сводка грамматики (это Приложение A как к стандарту C ++ 03, так и к окончательному проекту комитета C ++ 0x).
Вы можете приобрести стандарт C ++ 03 или загрузить C ++ 0x FCD (это документ n3092 на этой странице).
Чтобы ответить на вопрос «к какой категории это относится?» вопрос, грамматика C ++ не контекстно-свободная (также см. вопросы, связанные с ответами на этот вопрос; у них есть дополнительные примеры проблем, связанных с грамматикой C ++ и синтаксическим анализом C ++).
Бьярн Страуструп, создатель C ++, написал книгу под названием «Язык программирования C ++», которая многократно обновлялась (я читал 3-е издание около 10 лет назад ). Я помню, что в нем были очень технические детали относительно грамматики (препроцессор и компилятор).
Вы, вероятно, найдете эту книгу в одном из местных книжных магазинов, она может доставить вам больше удовольствия, чем стандарт ANSI, в зависимости от того, насколько конкретным вам нужно быть.
Эндрю Биркетт имеет подробный обзор синтаксического анализа C ++ на своем веб-сайте . Он охватывает некоторые трудности при создании грамматики C ++ (сочетание лексического, синтаксического и семантического анализа) и включает ссылки на несколько грамматик C ++.
Не уверен, но, насколько я понимаю, ссылка Джеймса МакНеллиса (на pdf) содержит примечание на первой странице:
Предупреждение
Этот документ не является ISO Международный стандарт. это распространяется для просмотра и комментариев. Это может быть изменено без предварительного уведомления и не может называться Международный стандарт.
Итак, поискал, и я думаю, что это правильная ссылка на официальный ISO: http://www-d0.fnal.gov/~dladams/cxx_standard.pdf