1. Universidad “Fermín Toro” Departamento de Formación General Escuela de Ingeniería Cabudare- Edo Lara COMPILADORES Br Henry Castillo
2. COMPILADORES Los compiladores son programas encargados de compilar. El cual toma un texto (código fuente) escrito en un lenguaje de alto nivel y lo traduce a un lenguaje comprensible por las computadoras. Generalmente un compilador se divide en dos partes: * Front End: Parte que analiza el código fuente, comprueba su validez, genera el árbol de derivación y rellena los valores de la tabla de símbolos. * Back End: Parte en donde se genera el código máquina exclusivo para una plataforma a partir de lo analizado en el front end.
4. EJEMPLOS Supongamos que un compilador tiene que analizar la siguiente preposición: Preposición: suma= var1 + var2 + 10; Análisis Léxico El analizador léxico lee los caracteres del programa fuente, y verifica que correspondan a una secuencia lógica (identificador, palabra reservada etc.). Esta secuencia de caracteres recibe el nombre componente léxico o lexema. id1= id2+ id3 * 10 Análisis Sintáctico El analizador sintáctico impone una estructura jerárquica a la cadena de componentes léxicos, generada por el analizador léxico, que es representada en forma de un árbol sintáctico. = / id1 + / id2 + / id3 10
5. EJEMPLOS Análisis Semántico El analizador semántico verificara en este caso que cada operador tenga los operandos permitidos. = / id1 + / id2 + / id3 tipo_ent | 10 Generador de código intermedio En esta etapa se lleva la preposición a una representación intermedia como un programa para una maquina abstracta. temp1= tipo_ent(10) temp2= id3 * temp1 temp3= id2 + tem2 id1= temp3
6. Optimización de código El código intermedio obtenido es representado de una forma mas optima y eficiente. temp1= id3 * 10.0 id1= id2 + temp1 Generador de código Finalmente lleva el código intermedio a un código objeto que en este caso es un código relocalizable o código ensamblador (también llamado código no enlazado). MOVF id3, R2 MULT #10.0, R2 MOVF id2, R1 ADDF R2, R1 MOVF R1, id1 EJEMPLOS
7. INTERPRETADORES Es un programa que lee línea a línea un programa escrito en un lenguaje; en lenguaje fuente y lo va traduciendo a un código intermedio, para ejecutarlo. interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel.
9. Es un lenguaje de programación de propósito general que ofrece economia sintáctica, control de flujo y estructuras sencillas y un buen conjunto de operadores. No es un lenguaje de muy alto nivel y más bien un lenguaje pequeño, sencillo y no está especializado en ningún tipo de aplicación. LENGUAJE C
10. COMPILADORES El lenguaje C se conoce como un lenguaje compilado. Existen dos tipos de lenguajes: interpretadores y compiladores. Podemos decir que el lenguaje C es un lenguaje de nivel medio, ya que combina elementos de lenguaje de alto nivel con la funcionalidad del lenguaje ensamblador. Hay que destacar que el lenguaje C es un lenguaje portable ya que permite utilizar el mismo código en diferentes equipos y sistemas informáticos. Asignación de estructuras (registros), enumeraciones y preprocesador más sofisticado. Es un lenguaje estructurado ya que permite crear procedimientos en bloques dentro de otros procedimientos.
11. LENGUAJE DE ALTO NIVEL Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso de EDD's. Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema. EJEMPLOS C++ PASCAL Cobol Java
12. LENGUAJE DE MEDIO NIVEL Se trata de un término no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel. EJEMPLOS BCPL C
13. LENGUAJE DE BAJO NIVEL Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas. Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo. EJEMPLOS Dentro de este grupo se encuentran: El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Consiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina. El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Ejemplos: Código máquina y el ensamblador.