Un interprete es un programa que lee un programa en un lenguaje y lo traduce a un programa equivalente en otro lenguaje, y adems informa al usuario sobre la presencia de errores en el programa de entrada
programa fuente mensajes de error
Aparente complejidad- Tareas bsicas
interprete
programa objeto
Un computador digital es una mquina que puede resolver problemas ejecutando ciertas instrucciones. Un programa es una secuencia de instrucciones. Los circuitos electrnicos de cada computadora reconocen un conjunto limitado de instrucciones muy simples. Lenguaje mquina es el conjunto de instrucciones bsicas de una computadora
TRADUCTORES
programa en L2
compilacin (compilador) interpretacin (intrprete)
programa en L1
Traduccin(ensamblador)
nivel 3
Sistema operativo
La mayora de las mquinas actuales constan de 6 niveles. Los microprogramas son directamente ejecutados por el hardware.
lgicas Circuitos integrados Circuitos combinacionales Circuitos aritmticos Relojes Memorias Microprocesadores Buses
Cada fabricante publica el Manual de referencia del lenguaje mquina para cada uno de los computadores.
Las instrucciones del nivel de mquina las interpreta el microprograma. En las mquinas en las que no existe el nivel de microprogramacin, las instrucciones del nivel de mquina son realizadas directamente por los circuitos electrnicos.
La mayora de las instrucciones de este nivel estn tambin en el nivel 2 pero adems tiene un nuevo conjunto de instrucciones, una organizacin diferente de la memoria, posibilidad de ejecutar 2 o ms programas ... Las nuevas instrucciones las interpreta el sistema operativo. Las que son idnticas a las del nivel 2 las lleva a cabo el microprograma.
Los niveles inferiores estn diseados para ejecutar los intrpretes y traductores de los niveles superiores y son escritos por los programadores de sistemas.
El ensamblador es el programa que lleva a cabo la traduccin de un programa del nivel 4.
Los lenguajes de alto nivel son ms fciles de utilizar que los lenguajes de niveles inferiores. Son utilizados por los programadores de aplicaciones. Los traductores de programas en lenguaje de alto nivel pueden ser compiladores o intrpretes.
Conceptos relacionados
Arquitectura de Computadoras Lenguajes de Programacin
Teora de Lenguajes
Con algunas tcnicas bsicas de escritura de compiladores se pueden construir traductores para una gran variedad de lenguajes y mquinas
HISTORIA
Experimentacin relacionada a traduccin de frmulas 1950: difcil escritura Primer FORTRAN: 18 aos Hoy: tcnicas sistemticas, lenguajes de implementacin, entornos de programacin y herramientas de software
HISTORIA
Computadoras
Cdigo Mquina
Hombre
Ensamblador
Cdigo Mquina
Lenguaje Ensamblador
Ensamblador
Cdigo Mquina
HOY. Y A FUTURO
El Diseo de un compilador surge como resultado de:
Desarrollo de un nuevo lenguaje de programacin Adicin de extensiones a los ya existentes Explotacin de las caractersticas del hardware
A futuro:
Extensin para el cmputo paralelo y distribuido Explotacin de caractersticas multimedia (MMX)
COMPILADOR
Traducen programas escritos en lenguaje de alto nivel a cdigo intermedio o a cdigo mquina
INTERPRETE
No genera cdigo objeto, analiza y ejecuta directamente cada proposicin del Programa Fuente (PF)
PREPROCESADOR
Sustituyen macros, incluyen archivos o extensin del lenguaje.
PARTES DE LA COMPILACIN
ANLISIS (Etapa Inicial): Divide al PF en sus elementos componentes y crea una representacin intermedia. Se determinan las operaciones y se registran en una estructura de rbol (ej. rbol sintctico) SNTESIS (Etapa Final): Construye el PO deseado a partir de la representacin Intermedia (requiere tcnicas ms especializadas)
ANALISIS SEMANTICO
Se realizan revisiones para asegurar que los componentes de un programa se ajustan de un modo significativo
EJEMPLO DE ANLISIS:
posicion := inicial + velocidad * 60 a ) Componentes lxicos:
1. El identificador posicion 2. El smbolo de asignacin := 3. El identificador inicial 4. El signo de suma: + 5. El identificador velocidad 6. El signo de multiplicacin: * 7. El nmero 60 Los identificadores o nombres reconocidos se organizan en una tabla de smbolos que se usar en los pasos siguientes
FASES DE UN COMPILADOR
PROGRAMA FUENTE analizador lxico analizador sintctico analizador semntico generador de cdigo intermedio optimizador de cdigo generador de cdigo
manejador de errores
PROGRAMA OBJETO
Cada fase transforma al PF de una representacin a otra
SINTESIS Prep. para la Gen. del cdigo OBJETO Gener. del cdigo
Fuente
Explorador
Recono-
Generador
Objeto
cedor
de cdigo
Tabla de
smbolos
EL LENGUAJE Y LA HERRAMIENTA
MODELO LENGUAJE CARACTERISTICAS
Compilado
Interpretado
Pseudocompilado
Java