b'\n_START_ARTICLE_\nCompilador de computador\n_START_SECTION_\nVariantes\n_START_PARAGRAPH_\nUn programa de an\xc3\xa1lisis t\xc3\xadpico asociado a un generador de c\xc3\xb3digo, ejecuta con cada una de las reglas de la gram\xc3\xa1tica que deben ser ejecutadas cuando estas normas sean aplicadas por el analizador. Estas piezas de c\xc3\xb3digo se refieren a veces a las rutinas de acci\xc3\xb3n como sem\xc3\xa1ntica, ya que definen la sem\xc3\xa1ntica de la estructura sint\xc3\xa1ctica que es analizada por el analizador. Dependiendo del tipo de an\xc3\xa1lisis que se debe generar, estas rutinas pueden construir un \xc3\xa1rbol de an\xc3\xa1lisis (o AST) o generar c\xc3\xb3digo ejecutable directamente._NEWLINE_Algunos compiladores de computador experimentales toman como entrada una descripci\xc3\xb3n formal de la sem\xc3\xa1ntica del lenguaje de programaci\xc3\xb3n, por lo general utilizando la sem\xc3\xa1ntica denotacional. Este enfoque es a menudo llamado \xc2\xabla sem\xc3\xa1ntica basada en la compilaci\xc3\xb3n\xc2\xbb, y fue iniciada por Peter Mosses Semantic Implementation System (SIS) en 1978.\xe2\x80\x8b Sin embargo, los generados por el compilador y el c\xc3\xb3digo que produc\xc3\xada eran ineficaces en el tiempo y el espacio. Actualmente no hay compiladores de producci\xc3\xb3n que se construyan de esta forma, pero se contin\xc3\xbaa investigando sobre ellos._NEWLINE_La calidad de la producci\xc3\xb3n compilador (PQCC) del proyecto en la Universidad Carnegie-Mellon University se basa en no formalizar la sem\xc3\xa1ntica, pero tiene un marco semi-formal para la descripci\xc3\xb3n de la m\xc3\xa1quina._NEWLINE_Existen en diferentes versiones de Compiladores de Computaci\xc3\xb3n, incluida la de reescribir los generadores de la m\xc3\xa1quina abajo hacia arriba (ver JBurg) para \xc3\xa1rboles de sintaxis baldosas en funci\xc3\xb3n de una reescritura de gram\xc3\xa1tica para la generaci\xc3\xb3n de c\xc3\xb3digo, y constante de atributos generadores analizador de la gram\xc3\xa1tica (por ejemplo, ANTLR puede ser utilizado para la comprobaci\xc3\xb3n de tipos simult\xc3\xa1nea, propagaci\xc3\xb3n, y m\xc3\xa1s durante la fase de an\xc3\xa1lisis).\n_START_SECTION_\nHistoria\n_START_PARAGRAPH_\nEl primer compilador de computaci\xc3\xb3n que utiliz\xc3\xb3 el nombre fue escrito por Tony Brooker en 1960 y se utiliz\xc3\xb3 para crear los compiladores para el equipo Atlas en la Universidad de M\xc3\xa1nchester, incluyendo el compilador Atlas Autocode. Sin embargo, fue bastante diferente de los compiladores modernos, y hoy probablemente se describe como algo entre un compilador gen\xc3\xa9rico altamente personalizable y un lenguaje extensible de sintaxis. \xc2\xabCompilador compilador\xc2\xbb: el nombre fue mucho m\xc3\xa1s apropiado para el sistema de Brooker que para los compiladores de compilador m\xc3\xa1s moderna, que se describe m\xc3\xa1s exactamente como analizador de generadores._NEWLINE_Otros ejemplos de analizador de generadores son yacc, vein, se, ANTLR, Coco / R, CUP, GNU bison, Eli, FSL, SableCC y JavaCC.'