Herramientas Para Hacer Compiladores
GoldParser para realizar el análisis léxico emplea autómatas finitos determinístico (DFA) y anticipado analizador LR (LALR). Los dos algoritmos mencionados son maquinas de estados loscuales emplean tablas para determinar acciones. Se construyo basándose en el principio lógico que separa la generación de LALR y DFA tablas de análisis sintáctico de la aplicación efectiva de losmismos algoritmos de análisis sintáctico. Con ello se logra que los analizadores que se emplearan en diferentes lenguajes de programación empleen las mismas gramáticas y el proceso de desarrollo. Soportamúltiples lenguajes de programación.
Esta herramienta esta compuesta por tres componentes lógicos:
• Constructor: Componente primario y el principal de la aplicación, se emplea para analizarla sintaxis de un lenguaje y la construcción de tablas de LALR Y DFA. Si las tablas se construyen con éxito, se almacenan los datos en un archivo de gramática cuadro compilado. Se informa de cualquierambigüedad en la gramática.
• Motor: Esta escrito para un lenguaje de programación especifico, este implementa los algoritmos LALR y DFA. La implementación del motor puede variar endiferentes lenguajes dado el enfoque del diseño de programas.
Algunos ejemplos de Motores: Pascal, Java, C++, etc.
• Cuadro compilado Gramática: Almacena datos de la tabla creada enel constructor. Las gramáticas de esta herramienta se basan en Backus-Naur, las expresiones regulares, y la notación de conjuntos.
YACC
Yacc herramienta de software libre que genera unanalizador sintáctico el cual se basa en una gramática analítica cuya escritura se parece a una gramática libre de contexto (Tipo2). El analizador sintáctico requiere de un analizador léxico (casi siempreLex o Flex, también de software libre). El proceso de creación consiste en convertir una convierte una gramática Tipo2 y el código de la traducción a un conjunto de tablas de una LR (1) analizador...
Regístrate para leer el documento completo.