- Compilador de computador
-
Un Compilador de computador (o Compilador compilador) es una herramienta que crea un programa de análisis, intérprete o compilador de algún tipo de descripción formal de un lenguaje y de la máquina. La forma más temprana y aún más común de compilador de computador es un generador de filtros, cuya entrada es una sintaxis (por lo general en BNF) de un lenguaje de programación, y en cuya salida se genera el código fuente de un programa de análisis, a menudo se utiliza como componente de un compilador.
El compilador de computador ideal toma la descripción de un lenguaje de programación y una arquitectura de instrucciones fijada, y genera automáticamente un compilador de ellos. En la práctica, el estado de la técnica aún tiene que llegar a este grado de sofisticación y la mayoría de los generadores compilador no son capaces de manejar arquitectura de información semántica o de destino.
Variantes
Un programa de análisis típico asociado a un generador de código, ejecuta con cada una de las reglas de la gramática que deben ser ejecutadas cuando estas normas sean aplicadas por el analizador. Estas piezas de código se refieren a veces a las rutinas de acción como semántica, ya que definen la semántica de la estructura sintáctica que es analizada por el analizador. Dependiendo del tipo de análisis que se debe generar, estas rutinas pueden construir un árbol de análisis (o AST) o generar código ejecutable directamente.
Algunos compiladores de computador experimentales toman como entrada una descripción formal de la semántica del lenguaje de programación, por lo general utilizando la semántica denotacional. Este enfoque es a menudo llamado «la semántica basada en la compilación», y fue iniciada por Peter Mosses Semantic Implementation System (SIS) en 1978.[1] Sin embargo, los generados por el compilador y el código que producía eran ineficaces en el tiempo y el espacio. No hay compiladores de producción se construyen de esta forma, pero continúa la investigación.
La calidad de la producción compilador compilador (PQCC) del proyecto en la Universidad Carnegie-Mellon University no formalizar la semántica, pero tiene un marco semi-formal para la descripción de la máquina.
Existen en diferentes versiones de Compiladores de Computación, incluida la de abajo hacia arriba reescribir los generadores de la máquina (ver JBurg) para árboles de sintaxis baldosas en función de una reescritura de gramática para la generación de código, y constante de atributos generadores analizador de la gramática (por ejemplo, ANTLR puede ser utilizado para la comprobación de tipos simultánea, propagación, y más durante la fase de análisis).
Historia
El primer compilador de computación que utilizó el nombre fue escrito por Tony Brooker en 1960 y se utilizó para crear los compiladores para el equipo Atlas en la Universidad de Manchester, incluyendo el compilador Atlas Autocode. Sin embargo, fue bastante diferente de los compiladores del historiador moderno, y hoy probablemente se describe como algo entre un compilador genéricos altamente personalizable y un lenguaje extensible de sintaxis. «Compilador compilador»: el nombre fue mucho más apropiado para el sistema de Brooker que para los compiladores de compilador más moderna, que se describe más exactamente como analizador de generadores.
Otros ejemplos de analizador de generadores en la yacc vein se ANTLR, Coco / R, CUP, GNU bison, Eli, FSL, SableCC y JavaCC.
Referencias
- ↑ Peter Mosses, «SIS: A Compiler-Generator System Using Denotational Semantics,» Report 78-4-3, Dept. of Computer Science, University of Aarhus, Denmark, June 1978
Wikimedia foundation. 2010.