Documente Academic
Documente Profesional
Documente Cultură
CALIFICACION
Promedio
EP + EF+ PROY + PP
Final
=
4
Proyecto (PROY) = A. Lexico + A. Sintactico+ A.semantico
3
Promedio de
Practicas (PP) =
P1 + P2
2
OBJETIVOS
Conocer los conceptos tericos referentes a:
hola.c
#include stdio.h
int main(){
cout<<hola;
return 0;
}
hola.exe
TRADUCTOR
1011100010101
0101010110100
0101011011010
0110010100000
1101011000110
LENGUAJES Y TRADUCTORES
Contenido: Parte I
Contenido: Parte II
Anlisis sintctico
Tratamiento de errores
Anlisis semntico
Generacin de cdigo intermedio
TRADUCTOR
Un traductor es un programa que
traduce un programa escrito en un
lenguaje a un nuevo programa escrito
en otro lenguaje.
PROGRAMA
FUENTE
TRADUCTOR
PROGRAMA
OBJETO
EL PROCESAMIENTO COMPLETO
DE UN PROGRAMA
Programa Fuente
COMPILADOR
Programa Objeto
ENLAZADOR
Programa Ejecutable
CARGADOR
DATOS
MEMORIA
Programa Ejecutable
RESULTADOS
EL PROCESAMIENTO COMPLETO DE UN
PROGRAMA
El programa objeto no est completo
para la ejecucin:
Programa Fuente
COMPILADOR
Programa Objeto
ENLAZADOR
Programa Ejecutable
CARGADOR
DATOS
MEMORIA
Programa Ejecutable
RESULTADOS
EL PROCESAMIENTO COMPLETO DE UN
PROGRAMA
Programa Fuente
COMPILADOR
Programa Objeto
ENLAZADOR
Programa Ejecutable
CARGADOR
DATOS
MEMORIA
Programa Ejecutable
RESULTADOS
TIPOS DE TRADUCTORES
Existen bsicamente dos tipos de
traductores, aunque tambin se
considera como traductor al
ensamblador:
Ensambladores
Intrpretes
Compiladores
FORTRAN
ALGOL
C
C++
PASCAL
Perl
javaScript
Lisp
VisualBasic
SmallTallk
java
NECESIDAD DE INTERPRETES Y
COMPILADORES
Los lenguajes de alto nivel hicieron necesarios los
interpretes y compiladores a los cuales tambin se les
denomina TRADUCTORES a partir de los aos 50.
Desde entonces, gracias al descubrimiento de tcnicas
sistemticas para el manejo de muchas tareas que surgen
en la compilacin, al desarrollo de buenos lenguajes de
implantacin, entornos de programacin y herramientas de
software, ..el diseo y desarrollo de interpretes y
compiladores se ha simplificado enormemente.
TIPOS DE TRADUCTORES
Leng. Fuente
ENSAMBLADOR
(asembler)
Leng. Fuente
Leng. Objeto
(leng.mquina)
INTERPRETE
Resultados
COMPILADOR
Leng. Objeto
(Alto nivel)
Leng. Fuente
(Alto nivel)
LENGUAJE EMSAMBLADOR
Depende de la mquina por lo
tanto hay un lenguaje mquina
para cada fabricante
Ejemplos de fabricantes
INTEL
AMD
CYRIX
TEXAS INSTRUMENTS:
IBM
THOMPSON
NEXGEN
LENGUAJE EMSAMBLADOR
Ventajas
Velocidad
Eficiencia de tamao
Flexibilidad
Desventajas
Tiempo de programacin
Programas fuentes grandes
Peligro de afectar recursos
inesperadamente
Falta de portabilidad
ESTRUCTURA DE UN COMPILADOR
PROGRAMA FUENTE
ANLISIS LXICO
ANLISIS SINTCTICO
TABLA DE
SMBOLOS
ANLISIS SEMNTICO
GENERACIN DE CDIGO
INTERMEDIO
OPTIMIZACIN DE
CDIGO INTERMEDIO
PROGRAMA OBJETO
MANEJO DE
ERRORES
COMPILACION
SINTESIS
ANALISIS
LEXICO
SINTAXIS
SEMANTICA
GENERACION
DE CODIGO
COMPILADOR
Ventaja
Desventajas
PROCESO DE COMPILACION
Prog.
Fuente
a:= 1;
b:=2;
c:=a+b;
Anlisis
a= 1
b=2
c=a+b
Generacin
de cdigo
mov a, 1
mov al, a
mov b, 2
mov bl, b
add al, bl
mov c, al
Optimizacin
mov al, 1
mov bl, 2
add al, bl
mov c, al
AGRUPAR FASES
ETAPA INICIAL
(Front-end)
ETAPA FINAL
(Back-end)
Anlisis lxico
Optimizacin de cdigo
Anlisis sintctico
Anlisis semntico
Creacin de tabla de smbolos
Generacin de cdigo
intermedio
Dependen de la maquina
CREAR
COMPILADOR
C
PARA
SISTEMAS OPERATIVOS DIFERENTES
C
Front-end
Back-end
UNIX
Genera cdigo
mquina para UNIX
Back-end
DOS
Genera cdigo
mquina para DOS
COBOL
Front-end
Front-end
Back-end
Intel
se
Ventajas
Favorece la modularidad
Util cuando los recursos del sistema son
limitados
Desventaja
Son mas lentos mientras mas pasadas tengan
TIPOS DE
COMPILADORES
Ensamblador
Compilador cruzado
Metacompilador
Descompilador
Autocompilador
Un compilador cruzado es
un compilador capaz de crear
cdigo ejecutable para otra
plataforma distinta a aqulla
en la que l se ejecuta
Programa que recibe como
entrada las especificaciones
del lenguaje para el que se
desea obtener un compilador
y genera como salida el
compilador para ese lenguaje
TIPOS DE INTERPRETES
Programa
Fuente
Programa
Fuente
INTERPRETE
ANALISIS Y
SINTESIS
PURO
Resultados
HIBRIDO
Programa Intermedio
INTERPRETE
Resultados
TABLA DE
SMBOLOS
ANLISIS SEMANTICO
GENERACIN DE CDIGO
OBJETO
EJECUCIN
MANEJO DE
ERRORES
INTERPRETE
Ventajas
Los programas objeto se pueden detener
Los programas objeto son muy robustos
Facilmente transportables entre distintas
mquinas
Un interprete necesita menos memoria que un
compilador
Desventaja
Anlisis
a= 1
a:= 1;
b:=2;
c:=a+b;
Generacin
de cdigo
mov a, 1
mov al, a
b=2
mov b, 2
mov bl, b
c=a+b
add al, bl
mov c, al
APLICACION DE COMPILADORES E
INTERPRETES
Desarrollo de interfaces textuales
Tratamiento de ficheros de texto con
informacin estructurada
Procesadores de texto
Diseo e interpretacin de lenguajes para
el formateo de texto y descripcin de
grficos
Gestion de base de datos
Procesamiento del lenguaje natural
Reconocimiento de formas
METALENGUAJES
Los
metalenguajes
son
herramientas para la descripcin
formal de los lenguajes
Diagramas de transicin
Expresiones regulares
Gramticas
PROYECTO
Condiciones del proyecto
ALGUNOS EJEMPLOS
declaraciones globales
main(){
variables locales
secuencia de sentencias
}
f1(){
variables locales
secuencia de sentencias
}
:
fn(){
variables locales
secuencia de sentencias
}
Estructura de
un programa
ALGUNOS EJEMPLOS
Tipos de datos a usar
Caracter
Entero
Float
Cadena
Declaracion de variables
int i, j, k;
char c, dato;
ALGUNOS EJEMPLOS
Sentencias de asignacion
La forma general de la sentencia de asignacion es:
Nombre_de_variable = expresion;
ejemplos
dato = cantidad;
x=c;
Constantes
Pueden ser enteras, reales, de caracter o cadena
Ejemplo:
c=A;
cout<<UNMSM;
total = 789;
ALGUNOS EJEMPLOS
Operadores
Operadores aritmeticos
Operadores relacionales y logicos
Otros operadores
Expresiones
Los operadores, las constantes y las variables son los constituyentes de las
expresionesPueden ser enteras, reales, de caracter o cadena
Ejemplo:
a + 5*b
(a >= 0) and ((b+5) > 10)
a
-a * 2 + b
-b + sqrt(b**2 - 4*a*c)
length(s) > 0
ALGUNOS EJEMPLOS
Sentencias
Por ejemplo en C tenemos:
Sentencias de etiqueta
Sentencias de expresion
Sentencia compuesta
Sentencia de seleccion
Sentencia de iteracion
Sentencia de salto
ALGUNOS EJEMPLOS
Funciones y Procedimientos
Las funciones son los bloques constructores de C y el lugar donde se da toda la
actividad del programa. La forma general de una funcion es:
Especificador_de_tipo nombre_de_la_funcion(lista de parametros)
{
cuerpo de la funcion
}
BIBLIOGRAFIA
AHO-ULLMAN(2008).
Compiladores, Principios,
tcnicas y herramientas
COLMAN-BUSBYROSS (1997).
Estructura de
Matematicas Discretas
para la Computacin
TEUFEL. SCHMIDT.
TEUFEL (1995).
Compiladores,
Conceptos
Fundamentales
KENNETH C.
LOUDEN (2004).
Construccin de
Compiladores,
principios y prctica
GRASSMANNTREMBLAY (1998).
Matematica Discreta
y Logica.
JACINTO RUIZ
CATALAN (2010)
Compiladores Teoria
e Implementacion
BIBLIOGRAFIA
Compiladores: principios, tcnicas
y herramientas, (2010), Alfred V.
Aho, Monica S. Lam, Ravi Sethi &
Jeffrey D. Ullman