Вы находитесь на странице: 1из 9

Tecnol ogico de Costa Rica Ingenier a en Computadores Lenguajes, compiladores e int erpretes Resumen Semana 3

Jos e Alberto Guill en Sanabria 201235850 25 y 27 de Febrero,2014

Contenidos
Comparaci on int erprete - compilador. Taxonom a de los compiladores. Consideraciones de dise no de un compilador. Lenguaje de programaci on. Taxonom a de lenguajes. Gerarqu a de Chomsky. Gram aticas regulares. Gram aticas libres de contexto Propiedades de las gram aticas

La siguiente es una tabla que compara las caracter sticas de un compilador y un int erprete.

Int erpretes Tiene como salida principal instrucciones ejecutables. El redimiento del int eprete es m as lento se semete a realizar la traducci on una a una. Tiende a ser m as portable e independiente de la arquitectura. Se requiere del programa fuente para su ejecuci on. Se detectan los errores en la ejecuci on del programa. Es m as exible para que el programa pueda usar la memoria.

Compiladores Tiene como salida un u nico lenguaje objeto. El redimiento de la ejecuci on del programa compilado (salida) es m as r apido que interpretado. La salida puede depender de la arquitectura. No requiere del programa fuente, porque el programa objeto es ejecutable. Puede ser secreto el programa fuente. Los errores sint acticos y sem anticos se detectan en la ejecuci on del programa objeto. Tiene menos exibilidad en el uso de la memoria para el programa objeto.

Cuadro 1: Comparaci on Int erprete - Compilador

Taxonom a de los compiladores.


Una pasada: Unica lectura de la entrada. M ultiples pasadas: M as de una lectura. Optimizadores: Compiladores espec cos se encargan de mojerar la depuraci on. Just In Time (JIT): H bridos, compila una parte y la otra la interpr eta como va llegando. Cruzadas: Compiladores para pasar de un lenguaje de alto nivel a otro de alto nivel. Por ejemplo: Java C++. Ensamblador: nm onicos relaci on uno a un. Lenguaje simb olico y binario. Ejemplo: Lenguaje Ensamblador mov add mult Ax Bx Cx Lenguaje Binario 10101010 11110000 00001111 01010101 11001100 11000011

Cuadro 2: Nm onicos Con esta tabla se podr a ejecutar la siguiente instrucci on: mov Ax , Bx = 10101010 01010101 11001100

Diagrama fases del compilador

Figura 1: Fases de la compilaci on.

Adem as existen otros elementos alrededor de un compilador: Preprocesador: se encarga de unicar el programa fuente para poder realizar las fases de un compilador. Va antes del an alisis l exico.

Carga bibliotecas, subclases, superclases y otros.

Cargadores y Editores de enlace (SO): Resuelve direcciones de memoria y da acceso a la parte de asignaci on de memoria y recursos f sicos.

IDE: Son utilizados por los programadores y tienen funciones adicionales a la est etica o la interacci on con el manejo de errores.

Ejemplo de compilaci on:

Figura 2: Compilaci on

Consideraciones de dise no de un compilador


Lenguaje Fuente: Tama no del lenguale. Cambio del lenguaje mientras se construye el compilador. Modular componenetes ayuda a afrontar el cambio. Lenguaje Objeto: Si es nuevo debe asegurarse que sea correcto. Producci on para varias generaciones de m aquina objeto. Rendimiento: Debe ser r apido. Calidad de c odigo. Localizaci on de errores. Mantenimiento. Transportabilidad: Redestinaci on: Puede cambiar el c odigo objeto que genera. Relocalizaci on: Puede ejecutarse facilmente en m aquinas distintas.

Lenguaje de programaci on
Es un dise no formal para expresar procesos que pueden ser ejecutados por una m aquina, adem as manipulan el comportamiento de la misma.

Taxonom a de Lenguajes
Por Abstracci on:
Primera Generaci on: Lenguaje binario. Segunda Generaci on: Lenguaje simb olico. Tercer Generac on: Alto nivel, tiene estructuras independientes de la m aquina (C, Pascal, Java). Cuarta Generaci on: Construcci on de aplicaciones con piezas prefabricadas. Quinta Generaci on: De uso espec co, el prorgamador conoce el problema y el lenguaje puede ayudar a resolver a partir de reglas. (Asociado a lenguajes l ogicos). No est an completamente aceptados.

Por su Gram atica


Una gram atica describe de forma natural la estructura jer arquica de la construcci on de lenguajes de programaci on. Son reglas y principios que predicen correctamente las combinaciones de oraciones de un lenguaje.

Ejemplo de espa nol: Para comprender mejor la idea consideremos el siguiente ejemplo. Regla 1 2 3 4 5 6 7 Producciones ORACION SUJETO PREDICADO DETERMINANTE NOMBRE VERBO COMPLEMENTO Elementos terminales SUJETO PREDICADO DETERMINANTE NOMBRE VERBO COMPLEMENTO el ni no | hombre | anciano duerme | r e | come placidamente | intranquilo

Cuadro 3: Tabla de gram atica. C omo resuleve la gram atica las siguientes oraciones? 1. el ni no duerme intranquilo

Figura 3: Soluci on de la gram atica 2. el hombre r e

Figura 4: Soluci on de la gram atica

Jerarqu a de Chomsky
Tipo 0 1 2 3 Lenguaje Recursivamente Enumerable (LRE) Dependiente del contexto (LDC) Independiente del contexto (LIC) Regular (LR) Aut omata M aquina de Turing Aut omata lineamente acotado Aut omata de pila Aut omata nito Gram aticas Sin restricciones A B A A aB

Cuadro 4: Jerarqu a de Chomsky

Figura 5: Diagrama de Jerarqu a.

Gram aticas regulares


S mbolo + ? * [] o () | Descripci on Aparece 1 o m as veces Aparece m aximo 1 vez Aparece 0 o m as veces (cerradura de Kleene) Agrupaci on OR rangos vac o Cuadro 5: S mbolos de operaciones regulares Ejemplo a+ a? a [ab] a|b A-z, A-Z a|

Reglas de las expresiones regulares:

Figura 6: Propiedades algebr aicas de las operaciones regulares

Gram aticas libres de contexto


1. Conjunto de componentes l exicos denominados S mbolos Terminales Se denotan en min uscula. Se pueden visualizar como las hojas de una arbol sint actico. En las gram aticas libres de contexto solo se encuetran en la parte derecha de una producci on. 2. Conjunto de componentes l exicos denominados No Terminales 3. Producciones conformadas de no terminales y terminales. Se denotan en may uscula. Tiene dos partes el nombrado No Terminal que solo sucede en las gram aticas libres de contexto (GLC) y la parte derecha que indica la sustituci on y puede tener terminales y no terminales. Ejemplo: Gram atica que permita dividir, multiplicar, sumar, restar y prioridad de par entesis. Ope Ope + Ope | Ope - Ope | Lista Lista Lista * D gito | Lista / D gito | D gito D gito [0 - 9]+ | (Ope)

Propiedades de las Gram aticas


Cuando se dise na o evalua una gram atica se busca que no sea ambigua. Se dice que una gram atica es ambigua cuando se pueden construir dos arboles sint acticos para una misma entrada.

Figura 7: Dos arboles sint acticos para x + y * x

Вам также может понравиться