primeraclase melo

Post on 17-Jul-2016

28 Views

Category:

Documents

3 Downloads

Preview:

Click to see full reader

DESCRIPTION

aaaaaaaaaaaaaaaaaaaaaaaa

TRANSCRIPT

LENGUAJES Y TRADUCTORES

ProfesorCarlos A. Ruiz De La Cruz Melo

LENGUAJES Y TRADUCTORES

Objetivos

Exponer técnicas y métodos para definir un lenguaje formal. Construcción de un traductor.

1

LENGUAJES Y TRADUCTORESContenido: Parte I

Arquitectura básica del compiladorAspectos formalesAnálisis lexicográficoAnálisis sintácticoTabla de símbolos

2

LENGUAJES Y TRADUCTORES

Contenido: Parte II

Análisis sintácticoTratamiento de erroresAnálisis semánticoGeneración de código intermedio

3

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

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

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

OPERACIONES CON LENGUAJES

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

7

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

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

TIPOS DE TRADUCTORES

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

10

(leng.máquina)

(Alto nivel)

(Alto nivel)

TIPOS DE TRADUCTORES

Leng. Fuente Leng. ObjetoCOMPILADOR

Leng. Fuente ResultadosINTERPRETE

Leng. Fuente Leng. ObjetoENSAMBLADOR(asembler)

11

EMSAMBLADOR

Ejemplos

Intel 80x86Motorola 68000IBM RS/6000

Depende de la máquina por lo tanto hay un lenguaje máquina para cada CPU

12

EMSAMBLADORVentajas

VelocidadEficiencia de tamañoFlexibilidad

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

13

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

COMPILADOR

Modelo de análisis y síntesis de la compilación

COMPILACION

ANALISIS SINTESIS

LEXICO SINTAXIS SEMANTICA GENERACION DE CODIGO

15

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

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

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

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

AGRUPAR FASESEjemplo: crear tres compiladores para la misma máquina

PASCAL

Front-end

C

Front-end

COBOL

Front-end

Back-end

Intel 20

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

COMPILADOR DE VARIAS PASADAS

VentajasFavorece la modularidadUtil cuando los recursos del sistema son limitados

DesventajaSon mas lentos mientras mas pasadas tengan

22

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

TIPOS DE COMPILADORES

Ensamblador Compilador cruzado Metacompilador Descompilador Aucompilador

24

ESPECIFICACION DE UN COMPILADOR

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

25

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

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

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

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

METALENGUAJES

Diagramas de transiciónExpresiones regularesGramáticas

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

30

top related