Compilador de computador

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

  1. 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.

Игры ⚽ Поможем написать реферат

Mira otros diccionarios:

  • compilador — compilador, ra (Del lat. compilātor, ōris). 1. adj. Que compila. U. t. c. s.) 2. m. Inform. Programa que convierte el lenguaje informático empleado por el usuario en lenguaje propio del computador …   Diccionario de la lengua española

  • Compilador — ► adjetivo/ sustantivo 1 Que compila. ► sustantivo masculino 2 INFORMÁTICA Programa que traduce un programa escrito en un lenguaje de alto nivel a otro código que se aproxima o coincide con el lenguaje máquina. TAMBIÉN copilador * * * compilador …   Enciclopedia Universal

  • Anexo:Historia de la computación — La computadora u ordenador, no es un invento de alguien en particular, sino el resultado evolutivo de ideas y realizaciones de muchas personas relacionadas con áreas tales como la electrónica, la mecánica, los materiales semiconductores, la… …   Wikipedia Español

  • Forth — Saltar a navegación, búsqueda Para otros usos de este término, véase Forth (desambiguación). Forth o FORTH es un lenguaje de programación para computadores y un ambiente de programación ideado por Charles H. Moore y Elisabeth Rather entre los… …   Wikipedia Español

  • Lenguaje ensamblador — Para otros usos de este término, véase Ensamblador (desambiguación). Lenguaje de máquina del Intel 8088. El código de máquina en hexadecimal se resalta en rojo, el equivalente en lenguaje assembler en magenta, y las direcciones de memoria donde… …   Wikipedia Español

  • IBM PC — (modelo 5150) IBM PC 5150 con teclado y monitor monocromático verde (5151), ejecutando MS DOS 5.0 Tipo Computador personal Comercializado …   Wikipedia Español

  • Familia Atari de 8 bits — Atari 400 (1979). Atari 800 …   Wikipedia Español

  • Grandes sistemas de Burroughs — Los grandes sistemas de Burroughs fueron los más grandes de tres series de computadores mainframes de Burroughs Corporation. Fundada en los años 1880, Burroughs era la más vieja entidad continuamente operando en el área de la computación, pero… …   Wikipedia Español

  • Historia de la computación — Saltar a navegación, búsqueda La computadora no es un invento de alguien en particular, sino el resultado evolutivo de ideas y realizaciones de muchas personas relacionadas con áreas tales como la electrónica, la mecánica, los materiales… …   Wikipedia Español

  • Lego Mindstorms — con tres sensores (tacto, luz y rotación) y un motor eléctrico …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”