principales librerias lenguaje funciones dev definicion clases bibliotecas c++ standards grammar context-free-grammar chomsky-hierarchy

librerias - ¿Hay una gramática estándar de C++?



librerias y bibliotecas de c (5)

¿El estándar especifica la gramática oficial de C ++?

Busqué, pero no lo encontré por ningún lado.

Además, deseo leer un poco sobre la gramática de C ++ en detalle, como en qué categoría de gramáticas cae, etc. Cualquier enlace que me señale en la dirección correcta sería útil.

Por categoría, quiero decir

tomado de here


Alessio Marchetti puso una gramática BNF hipervinculada para C ++ en http://www.nongnu.org/hcb/ .

Tener todo lo relacionado y en una sola página facilita la navegación entre las reglas.


Andrew Birkett tiene una visión general detallada del análisis de C ++ en su sitio web . Cubre algunas de las dificultades para crear una gramática en C ++ (mezcla de análisis léxico, sintáctico y semántico) e incluye enlaces a varias gramáticas en C ++.


Bjarne Stroustrup, el creador de C ++, escribió un libro llamado El lenguaje de programación de C ++ que se ha actualizado muchas veces (leí la tercera edición hace unos 10 años). Recuerdo que tenía detalles muy técnicos con respecto a la gramática (preprocesador y compilador).

Probablemente pueda encontrar este libro en sus librerías locales, puede ofrecerle más diversión que un documento de estándares de ANSI, dependiendo de qué tan específico sea.


No estoy seguro, pero por lo que veo, el enlace de James McNellis (al pdf) contiene una nota en la primera página:

Advertencia

Este documento no es una norma internacional ISO. Se distribuye para su revisión y comentarios. Está sujeto a cambios sin previo aviso y no puede ser referido como una Norma Internacional.

Entonces, busqué y creo que este es el enlace correcto a la ISO oficial: http://www-d0.fnal.gov/~dladams/cxx_standard.pdf


Si lo hace

La gramática se describe en detalle en todo el estándar y se resume en el Apéndice A: Resumen de gramática (es el Apéndice A en el estándar C ++ 03 y el borrador final del comité de C ++ 0x).

Puede adquirir el estándar C ++ 03 o puede descargar el FCD C ++ 0x (es el documento n3092 en esa página).

Para responder a la pregunta "¿en qué categoría está?" pregunta, la gramática de C ++ no está libre de contexto (también vea las preguntas vinculadas en las respuestas a esa pregunta; tienen ejemplos adicionales de problemas relacionados con la gramática de C ++ y el análisis de C ++)