Anda di halaman 1dari 25

INTERPRETE

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

TEORIA DE SOFTWARE DE SISTEMAS

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

Utilizar lenguaje mquina es difcil y tedioso. Solucin:


sea

L1 el lenguaje mquina y L2 un lenguaje ms fcil de utilizar

programa en L2
compilacin (compilador) interpretacin (intrprete)

programa en L1

MQUINAS MULTINIVEL ACTUALES


nivel 5
Lenguajes de alto nivel

Traduccin (compilador) nivel 4


Lenguaje ensamblador

Traduccin(ensamblador)
nivel 3
Sistema operativo

Interpretacin (sistema operativo) nivel 2


Mquina convencional

La mayora de las mquinas actuales constan de 6 niveles. Los microprogramas son directamente ejecutados por el hardware.

Interpretacin (microprograma) nivel 1


Microprogramacin

Ejecutados directamente nivel 0


Lgica digital

Nivel 0: nivel de lgica digital


Es el hardware de la mquina. El nivel inferior sera el nivel de dispositivo. En este nivel:


Puertas

lgicas Circuitos integrados Circuitos combinacionales Circuitos aritmticos Relojes Memorias Microprocesadores Buses

Nivel 1: nivel de microprogramacin

Existe un programa llamado microprograma.


La funcin del microprograma es interpretar las instrucciones del nivel 2. En algunas mquinas no existe el nivel de microprogramacin.

Nivel 2: nivel de mquina convencional

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.

Nivel 3: nivel del sistema operativo

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.

Nivel 4: nivel del lenguaje ensamblador

Los niveles 4 y superiores son utilizados por los programadores de aplicaciones.

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.

Nivel 5: nivel de lenguajes de alto nivel

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

Compiladores Ingeniera de Software Teora de Algoritmos

Con algunas tcnicas bsicas de escritura de compiladores se pueden construir traductores para una gran variedad de lenguajes y mquinas

CLASIFICACION GENERAL DE COMPILADORES


De una pasada o de mltiples pasadas De carga y de ejecucin De depuracin o de optimizacin

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

Compilador Lenguaje Lenguaje de Ensamblador Alto Nivel

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)

TIPOS DE SISTEMAS DE COMPILACIN


ENSAMBLADOR
Traducen programas escritos en lenguaje ensamblador a cdigo mquina

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.

SISTEMA PARA PROCESAMIENTO DE UN LENGUAJE


estructura del programa fuente preprocesador programa fuente compilador programa objeto en lenguaje ensamblador ensamblador cdigo de mquina relocalizable editor de carga y enlace biblioteca archivos obj.relocal.

cdigo de mquina absoluto

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)

UN AMBIENTE GENERAL DE COMPILACIN


Fuente

Anlisis lxico Anlisis sintctico Anlisis semntico


Intermedio Generador de cdigo

Ms: Sistemas de edicin y depuracin

Cdigo relocalizable Enlazador Objeto

ANLISIS DEL PROGRAMA FUENTE


ANALISIS LINEAL (Lxico- Exploracin- Scanner)
Se lee el programa como una cadena de izquierda a derecha, se agrupan y se generan componentes lxicos o tokens (secuencia de caracteres con significado colectivo)

ANALISIS JERARQUICO (Sintctico- Parser)


Los componentes lxicos se agrupan en colecciones anidadas con un significado colectivo ( frases gramaticales que por lo general se representan mediante rboles sintcticos)

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

administrador de la tabla de smbolos

manejador de errores

PROGRAMA OBJETO
Cada fase transforma al PF de una representacin a otra

ESQUEMA DE BLOQUES DE UN COMPILADOR


FUENTE Compilador ANALISIS Scanner Parser Tabla de smbolos

SINTESIS Prep. para la Gen. del cdigo OBJETO Gener. del cdigo

ESTRUCTURA FUNCIONAL DE UN COMPILADOR (de una pasada)


SENTENCIA

Fuente

Explorador

Recono-

Generador

Objeto

cedor

de cdigo

Tabla de
smbolos

DETECCIN E INFORMACIN DE ERRORES


Cada fase puede encontrar errores y debe tratarlo para continuar con la Compilacin, permitiendo detectar ms errores Las fases de Analisis Sintctico y Semntico manejan la mayora de los errores En el Anilsis Semntico se detectan errores donde la estructura sintctica es correcta pero no tiene significado la operacin ( Por. ej. sumar dos ID , donde uno es el nombre de una matriz y el otro un nombre de procedimiento)

EL LENGUAJE Y LA HERRAMIENTA
MODELO LENGUAJE CARACTERISTICAS

Compilado

Fortran, COBOL, C/C++, Pascal


Lisp,AWK, BASIC, SQL

Sintaxis rigurosa, velocidad y tamao


Desempeo lento. Actividades no planeadas. Sintaxis relajadas Transportabilidad absoluta, desempeo intermedio. Sintaxis rigurosa

Interpretado

Pseudocompilado

Java

Anda mungkin juga menyukai