Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Cruzados.
De arranque.
Descompilador.
Escritor
Compilador de compilador
Un compilador cruzado produce código para una CPU o sistema operativo diferente al que se
ejecuta en el compilador cruzado.
uno de nivel superior es un descompilador ; un programa que traduce entre lenguajes de alto
nivel, generalmente llamado compilador o transpilador de fuente a fuente .
Un reescritor de idiomas suele ser un programa que traduce la forma de las expresiones sin
cambiar de idioma.
Un compilador-compilador es un compilador que produce un compilador (o parte de uno), a
menudo de forma genérica y reutilizable para poder producir muchos compiladores diferentes.
Conclusión
Es probable que un compilador realice algunas o todas las siguientes operaciones, a
menudo denominadas fases:
preprocesamiento , análisis léxico , análisis sintáctico , análisis semántico (
traducción dirigida por la sintaxis ), conversión de programas de entrada a una
representación intermedia , optimización de código y generación de código .
Fin.
un lenguaje de programación puede tener tanto un compilador como un intérprete.
En la práctica, los lenguajes de programación tienden a asociarse con uno solo (un
compilador o un intérprete).
Ventajas y desventajas ante los
interpretes
Diferencias
Sin embargo, una vez que se ejecuta el programa, los servicios del compilador ya no son
necesarios, mientras que el intérprete continúa utilizando los recursos informáticos.
Compilador
•Ada.
•ALGOL. Algol 60. Algol 68. SMALL.
•BASIC.
•C. C++ Objective-C. C# (a bytecode)
•D.
•CLEO.
•COBOL.
•Cobra.
Estructura del compilador de tres etapas
El front-end escanea la entrada y verifica la sintaxis y la semántica de acuerdo con un idioma de origen
específico.
El extremo medio realiza optimizaciones en el IR que son independientes de la arquitectura de la CPU a
la que se dirige.
El back-end realiza la programación de instrucciones , que reordena las instrucciones para mantener
ocupadas las unidades de ejecución paralelas llenando los intervalos de retraso
Gramatica libre de contexto
https://en.wikipedia.org/wiki/Context-free_grammar
Análisis sintáctico
Un analizador sintáctico es una de las partes de un compilador que transforma su entrada en un
árbol de derivación.
Una gramática G es ambigua cuando tiene mas de un arbol de parseo (ya sea por la izquierda o
por la derecha) para al menos una cadena de entrada.
jemplo
E -> E * E
E -> E – E
E -> id
Para la cadena id + id – id, la gramática anterior tiene dos árboles de parseo diferentes.
Errores sintácticos al programar
Sintácticos . Los errores de sintaxis, o sintácticos, ocurren cuando el programador escribe código
que no va de acuerdo a las reglas de escritura del lenguaje de programación.
Como errores tipográficos, como por ejemplo la falta de puntos y comas, nombres de variables
incorrectas, falta de paréntesis, palabras claves mal escritas, etc.
Ejemplo:
Como podemos observar aparece subrayado la línea donde disponemos System con minúsculas como en
la línea que imprimimos la variable superficie con mayúsculas. Si modificamos y corregimos los dos errores
sintácticos podremos ejecutar nuestro programa.
Errores Semánticos
Los errores que puede detectar el analizador sintáctico son aquellos que violan las reglas de una
gramática independiente del contexto. Ya hemos mencionado que algunas de las características de
un lenguaje de programación no pueden enunciarse con reglas independientes del contexto, ya que
dependen de él; por ejemplo, la restricción de que los identificadores deben declararse
previamente. Por lo tanto, los principales errores semánticos son:
x = 4.32;