primeraclase melo

31
LENGUAJES Y TRADUCTORES Profesor Carlos A. Ruiz De La Cruz Melo

Upload: ronadl

Post on 17-Jul-2016

23 views

Category:

Documents


3 download

DESCRIPTION

aaaaaaaaaaaaaaaaaaaaaaaa

TRANSCRIPT

Page 1: Primeraclase Melo

LENGUAJES Y TRADUCTORES

ProfesorCarlos A. Ruiz De La Cruz Melo

Page 2: Primeraclase Melo

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

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

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

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

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

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

OPERACIONES CON LENGUAJES

UniónIntersecciónComplementaciónConcatenaciónCierre o clausura universal (estrella de kleene)Cierre positivo

7

Page 9: Primeraclase Melo

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

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

TIPOS DE TRADUCTORES

Ensamblador ( 80x86)Interprete ( visual basic, java)Compilador ( C, C++, pascal, delphi)

10

Page 12: Primeraclase Melo

(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

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

EMSAMBLADORVentajas

VelocidadEficiencia de tamañoFlexibilidad

DesventajasTiempo de programaciónProgramas fuentes grandesPeligro de afectar recursos inesperadamenteFalta de portabilidad

13

Page 15: Primeraclase Melo

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

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

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

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

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

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

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

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

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

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

TIPOS DE COMPILADORES

Ensamblador Compilador cruzado Metacompilador Descompilador Aucompilador

24

Page 26: Primeraclase Melo

ESPECIFICACION DE UN COMPILADOR

Especificación léxica Especificación sintáctica Especificación semántica

25

Page 27: Primeraclase Melo

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

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

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

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

METALENGUAJES

Diagramas de transiciónExpresiones regularesGramáticas

Los metalenguajes son herramientas para la descripción formal de los lenguajes

30