Coco / R es un generador de compiladores que toma una gramática de formato extendido Backus-Naur (EBNF) con atribución L de un idioma fuente y genera un escáner y un analizador para ese idioma.
Autor (es) original (es) | Hanspeter Mössenböck y otros |
---|---|
Plataforma | Multiplataforma |
Tipo | Generador de analizador / escáner |
Licencia | GNU GPL |
Sitio web | ssw |
El escáner funciona como un autómata finito determinista . Admite caracteres Unicode en codificación UTF-8 y puede distinguirse entre mayúsculas y minúsculas. También puede reconocer tokens según su contexto del lado derecho. Además de los símbolos de terminal, el escáner también puede reconocer pragmas , que son tokens que no forman parte de la sintaxis pero que pueden aparecer en cualquier parte del flujo de entrada (por ejemplo, directivas del compilador o caracteres de final de línea).
El analizador usa el descenso recursivo ; Los conflictos de LL (1) pueden resolverse mediante una búsqueda anticipada de múltiples símbolos o mediante comprobaciones semánticas. Por tanto, la clase de gramáticas aceptadas es LL (k) para una k arbitraria. El análisis difuso es compatible con los denominados CUALQUIER símbolo que coincida con conjuntos complementarios de tokens. Las acciones semánticas se escriben en el mismo idioma que el analizador y el analizador generados. El manejo de errores del analizador puede ajustarse especificando puntos de sincronización y "símbolos débiles" en la gramática. Coco / R verifica la gramática para verificar que esté completa, consistencia, no redundancia, así como también para los conflictos LL (1).
Existen versiones de Coco / R para Java , C # , C ++ , Pascal , Modula-2 , Modula-3 , Delphi , VB.NET , Python , Ruby y otros lenguajes de programación. Las últimas versiones de la Universidad de Linz son las de C #, Java y C ++. Para la versión de Java, hay un complemento de Eclipse y para C #, un complemento de Visual Studio. También hay ejemplos de gramáticas para Java y C #.
Coco / R se desarrolló originalmente en la ETHZ y se mudó con Hanspeter Mössenböck a la Universidad de Linz cuando obtuvo su nombramiento allí. Coco / R se distribuye bajo los términos de una Licencia Pública General GNU ligeramente relajada .
Ver también
Referencias
- Terry, Pat (2005). Compilando con C # y Java . Addison Wesley . (Un libro sobre el uso de Coco / R para la construcción de compiladores).
- Rechenberg, Peter ; Mössenböck, Hanspeter (1985). Ein Compiler-Generator für Mikrocomputer - Grundlagen, Anwendungen, Programmierung in Modula-2 (en alemán) (1 ed.). Munich, Alemania: Carl Hanser Verlag . ISBN 3-446-14495-1.(NB. El libro describe la construcción de Coco en Modula-2 .)