Professional Documents
Culture Documents
Figure 2: Arbol 2
Optimizaci on de C odigo tmp1=id3*real(60) id1=id2+tmp1 Generacion de Codigo movf id3,r2 mulf 60,0,r2 movf id2,r1 addf r2,r1 movf r1,id1 Consideraciones de dise no de un compilador Lenguaje fuente: Tama no del lenguaje. Cambio del lenguaje mientras se construye el compilador, moduliza componentes que ayudan a afrontar el cambio. Lenguaje objeto: Si es nuevo debe asegurarse que sea correcto. Rendimiento: Debe ser r apido. Claridad de c odigo. Localizaci on de errores. Mantenimiento. Transportabilidad. Redestincion: puede cambiar el c odigo objeto generado. Relocalizaci on: puede ejecutar f acilmente en m aquinas diferentes.
Lenguaje de programaci on: Es un dise no formal para expresar procesos que pueden ser ejecutados por una m aquina. Manipula el comportamiento de la m aquina. Taxonom a de lenguajes Abstracci on: Primera generaci on: Binario. Segunda generaci on: Lenguajes simb olicos. Tercera generaci on: Alto nivel, tienen estructuras independientes de la m aquina (C, C++, Java). Cuarta generaci on: Construcci on de aplicaciones con piezas prefabricadas. Quinta generaci on: De uso espec co, el programador conoce el problema y el lenguaje puede ayudar a resolverlo a partir de reglas. Gram atica: Una gram atica describe de forma natural la estructura jer arquica de la construcci on de lenguajes de programaci on. Son las reglas y principios que producen correctamente las combinaciones de oraciones en el lenguaje. ejemplo: Modelo Espa nol Oraci on= Sujeto Predicado Sujeto= Determinante Nombre Predicado= Verbo Complemento Determinante= el Nombre= ni no hombre anciano Verbo= duerme r e come Complemento= pl acidamente intranquilo el ni no duerme intranquilo
Figure 3: Arbol 3
Jerarqu a de Chomsky
Figure 5: Tabla 1
Gram aticas Regulares Es una secuencia de caracteres que forma un patr on de b usqueda. Operaciones: +=Aparece m as de una vez. ?+Aparece m aximo una vez. =Aparece cero o m as veces. []= Agrupaci on. = or. -= rangos, ejemplo A-Z, 0-9. E= vacio Otras variantes: S= Fin. Potencias.
Figure 7: Tabla 2 Gram aticas Libres de Contexto Conjunto de componentes l exicos denominados S mbolos Terminales. Denotados en min uscula. Se pueden visualizar como hojas de un a rbol sint actico. En las gram aticas libres de contexto, solo se encuentra en la derecha de la producci on. Conjunto de componentes l exicos denominados No Terminales. Producciones conformadas de No Terminales y Terminales. Se denotan con may uscula. Tienen dos partes, el nombre (No Terminales) y la parte derecha que indica la sustituci on y puede tener terminales y no terminales. Denici on de un no terminal como s mbolo inicial.
Ejemplo: Lista= Lista + D gito Lista - D gito D gito D gito= [0-9] 6+8-9
Figure 8: Arbol 5 Propiedades de la Gram atica Cuando se dise na una gram atica se busca que no sea ambigua. Se dice que una gram atica es ambigua cuando se pueden construir al menos dos arboles sint acticos para una misma entrada ejemplo: Op= Op+Op
Otro ejemplo se muestra en la representaci on de los IF anidados: If Cond = if (Exp)thenSentenciaelseSentencia|if (Exp)thenSentencia Exp= Exp+T ermino Exp-T ermino T ermino Sentencia = Exp; Sentencia |print(hola); Sentencia |IfC ond T ermino= [0 9] if(1+2)3+4; if (3+4)6+7; else 8+9