Download - Primeraclase Melo
![Page 1: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/1.jpg)
LENGUAJES Y TRADUCTORES
ProfesorCarlos A. Ruiz De La Cruz Melo
![Page 2: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/2.jpg)
LENGUAJES Y TRADUCTORES
Objetivos
Exponer técnicas y métodos para definir un lenguaje formal. Construcción de un traductor.
1
![Page 3: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/3.jpg)
LENGUAJES Y TRADUCTORESContenido: Parte I
Arquitectura básica del compiladorAspectos formalesAnálisis lexicográficoAnálisis sintácticoTabla de símbolos
2
![Page 4: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/4.jpg)
LENGUAJES Y TRADUCTORES
Contenido: Parte II
Análisis sintácticoTratamiento de erroresAnálisis semánticoGeneración de código intermedio
3
![Page 5: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/5.jpg)
LENGUAJELenguaje ( def. linguística)
Conjunto de palabras y formas de expresión por medio de las cuales se relaciona una comunidad de hombres determinada.
Lenguaje de programaciónSistema de signos utilizado para escribir un programa que ha de ejecutar un autómata
4
![Page 6: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/6.jpg)
LENGUAJEDefinición Formal
Símbolo• Es una entidad abstracta
Alfabeto ( )• Cualquier conjunto finito y no vacio de
elementos que denominaremos símbolosLenguaje (* )• Es el conjunto de todas las palabras sobre
un alfabeto. Se le conoce como lenguaje universal
Lenguaje ( L )• Es un subconjunto de * 5
![Page 7: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/7.jpg)
LENGUAJECadena
Secuencia finita de símbolos del alfabeto
Longitud de una cadena wNúmero de símbolos que contiene una cadena y se denota por |w|
Potencia de una cadenaUna cadena de “i” símbolos “a” se denota por ai 6
![Page 8: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/8.jpg)
OPERACIONES CON LENGUAJES
UniónIntersecciónComplementaciónConcatenaciónCierre o clausura universal (estrella de kleene)Cierre positivo
7
![Page 9: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/9.jpg)
TRADUCTOR
Un traductor es un programa que traduce un programa escrito en un lenguaje a un nuevo programa escrito en otro lenguaje.
LENGUAJE FUENTE
TRADUCTOR LENGUAJE OBJETO
8
![Page 10: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/10.jpg)
TRADUCTORLenguaje fuente
Programas escritos en un lenguaje de alto nivel escritos en texto ordinario en el que hemos introducido las sentencias (instrucciones) del programa con un editor de texto, o con un Entorno Integrado de Desarrollo, que ya contiene el traductor.
Lenguaje objeto
Lenguaje resultante de la traducción 9
![Page 11: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/11.jpg)
TIPOS DE TRADUCTORES
Ensamblador ( 80x86)Interprete ( visual basic, java)Compilador ( C, C++, pascal, delphi)
10
![Page 12: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/12.jpg)
(leng.máquina)
(Alto nivel)
(Alto nivel)
TIPOS DE TRADUCTORES
Leng. Fuente Leng. ObjetoCOMPILADOR
Leng. Fuente ResultadosINTERPRETE
Leng. Fuente Leng. ObjetoENSAMBLADOR(asembler)
11
![Page 13: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/13.jpg)
EMSAMBLADOR
Ejemplos
Intel 80x86Motorola 68000IBM RS/6000
Depende de la máquina por lo tanto hay un lenguaje máquina para cada CPU
12
![Page 14: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/14.jpg)
EMSAMBLADORVentajas
VelocidadEficiencia de tamañoFlexibilidad
DesventajasTiempo de programaciónProgramas fuentes grandesPeligro de afectar recursos inesperadamenteFalta de portabilidad
13
![Page 15: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/15.jpg)
COMPILADOREstructura de un compilador
PROGRAMA FUENTE
ANÁLISIS LÉXICO
OPTIMIZACIÓN DE CÓDIGO INTERMEDIO
PROGRAMA OBJETO
TABLA DE SÍMBOLOS
MANEJO DE ERRORES
ANÁLISIS SINTÁCTICO
ANÁLISIS SEMÁNTICO
GENERACIÓN DE CÓDIGO INTERMEDIO
14
![Page 16: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/16.jpg)
COMPILADOR
Modelo de análisis y síntesis de la compilación
COMPILACION
ANALISIS SINTESIS
LEXICO SINTAXIS SEMANTICA GENERACION DE CODIGO
15
![Page 17: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/17.jpg)
COMPILADOR
VentajaLos programas objeto se ejecutan rapidamenteLa información de mensajes de errores es mas detalladaEn bucles, se genera código equivalente al bucle
DesventajasLos programas objetos son poco robustosLos programas objeto no se pueden detenerNo son transportables entre distintas máquinas
16
![Page 18: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/18.jpg)
COMPILADORProceso de compilación de un fragmento de programa
a:= 1;b:=2;c:=a+b;
Prog. Fuente
a= 1b=2c=a+b
mov a, 1mov al, amov b, 2mov bl, badd al, blmov c, al
mov al, 1mov bl, 2add al, blmov c, al
Análisis Generación de código
Optimización
17
![Page 19: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/19.jpg)
AGRUPAR FASES
ETAPA INICIAL (Front-end)
ETAPA FINAL (Back-end)
Análisis léxico
Análisis sintáctico
Creación de tabla de símbolos
Análisis semántico
Generación de código intermedio
Optimización de código
Generación de código objeto
Dependen del lenguaje fuente y son independientes de la máquina
Dependen del lenguaje intermedio
18
![Page 20: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/20.jpg)
C
AGRUPAR FASESEjemplo : Crear un compilador C para 2 máquinas diferentes
Front-end
Back-endUNIX
Back-endDOS
Genera código máquina para UNIX
Genera código máquina para DOS 19
![Page 21: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/21.jpg)
AGRUPAR FASESEjemplo: crear tres compiladores para la misma máquina
PASCAL
Front-end
C
Front-end
COBOL
Front-end
Back-end
Intel 20
![Page 22: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/22.jpg)
COMPILADOR DE VARIAS PASADAS
Varias fases de la compilación se implementan en un único pasoUn paso implica una léctura del archivo de entrada y en una escritura de un archivo de salidaUn compilador de varios pasos se denomina compilador de varias pasadas
21
![Page 23: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/23.jpg)
COMPILADOR DE VARIAS PASADAS
VentajasFavorece la modularidadUtil cuando los recursos del sistema son limitados
DesventajaSon mas lentos mientras mas pasadas tengan
22
![Page 24: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/24.jpg)
CONTEXTO DE UN COMPILADORLenguaje Fuente
Módulo de Carga
Lenguaje Ensamblador COMPILACION
MONTAJE
EJECUCION
....
Programa Ejecutable en Memoria
ObjetoCódigoReubicable
MONTADOR DE ENLACES(LINKER)
CARGADOR (LOADER)
ENSAMBLADOR
TRADUCTOR
ObjetoCódigoReubicable
ObjetoCódigoReubicable
23
![Page 25: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/25.jpg)
TIPOS DE COMPILADORES
Ensamblador Compilador cruzado Metacompilador Descompilador Aucompilador
24
![Page 26: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/26.jpg)
ESPECIFICACION DE UN COMPILADOR
Especificación léxica Especificación sintáctica Especificación semántica
25
![Page 27: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/27.jpg)
INTERPRETEEstructura de un interprete
PROGRAMA FUENTE
ANÁLISIS LÉXICO
ANÁLISIS SINTÁCTICO
ANÁLISIS SEMANTICO
GENERACIÓN DE CÓDIGO OBJETO
EJECUCIÓN
TABLA DE SÍMBOLOS
MANEJO DE ERRORES
26
![Page 28: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/28.jpg)
INTERPRETEVentajas
Los programas objeto se pueden detenerLos programas objeto son muy robustosFacilmente transportables entre distintas máquinasUn interprete necesita menos memoria que un compilador
DesventajaLos programas objeto se ejecutan de forma lentaEn bucles, se traduce tantas veces una línea como veces se repite el bucle
27
![Page 29: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/29.jpg)
INTERPRETEProceso de interpretación de un fragmento de programa
a:= 1;b:=2;c:=a+b;
Prog.Fuente
a= 1 mov a, 1mov al, a
Análisis
b=2
c=a+b
mov b, 2mov bl, b
add al, blmov c, al
Generación de código
28
![Page 30: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/30.jpg)
APLICACION DE COMPIL. E INTERPRETES
Desarrollo de interfaces textualesTratamiento de ficheros de texto con información estructuradaProcesadores de textoDiseño e interpretación de lenguajes para el formateo de texto y descripción de gráficosGestion de base de datosProcesamiento del lenguaje naturalReconocimiento de formas
29
![Page 31: Primeraclase Melo](https://reader033.vdocuments.net/reader033/viewer/2022042618/577cb2f41a28aba7118c3634/html5/thumbnails/31.jpg)
METALENGUAJES
Diagramas de transiciónExpresiones regularesGramáticas
Los metalenguajes son herramientas para la descripción formal de los lenguajes
30