Download - Maquina de pila abstracta

Transcript

Angelo Wallner 07-SCT6-146

Wilfredo Peña 09-EIST-6-006

Alcys Bautista 09-EIST-6-014

Juan Leandro Medina 09-EIST-040

Presentación

Maquina abstractaPuede definirse como un procedimiento para

ejecutar unconjunto de instrucciones en algún lenguaje

formal. La definición de máquina abstracta no

requiere que exista implementación de dicha máquina en Hardware, en cuyo caso sería una máquina concreta.

De hecho, las máquinas de Turing son máquinas abstractas que ni siquiera pueden implementarse en Hardware.

Codigo IntermedioUn programa para una maquina abstracta

Dos cualidadesFacil de Producir

o Reglas claras de como construirlaFacil de traducir al lenguaje objeto

Codigo de 3 direccionesA = A*8 + B/7

temp1 = A*8 temp2 = B/7 A = temp1 + temp2

Variable temporales

Maquina de pila

Es un modelo computacional en el cual la memoria de la

computadora toma la forma de una o más pilas. El

término también se refiere a un computador real

implementando o simulando una máquina de pila

idealizada

Maquina de pilaMemoria independiente para instrucciones y

datosToda operacion es con valores de la pilaOperaciones

Aritmetica enteraManipulacion de pilaControl de flujo

IntruccionesPush v inserta v en la pilaValD w inserta valor de posicion wValI w inserta direccion de wPop saca valor de la pila:= Pop y poner en direccion PopCopy Pop y Push-Push

máquina virtual

Es una máquina abstracta para la que existe unintérprete.

Varios ejemplos de máquinas virtuales:

SECD. Desarrollada por Peter Landin en 1966 para

lenguajes funcionales. Posteriormente, laimplementación de lenguajes funcionales ha

recurrido ala utilización de máquinas basadas en

transformación degrafos.P-CODE. Máquina de pila desarrollada paraimplementar el lenguaje Pascal.WAM(Warren Abstract Machine).

Desarrollada porDavid Warren para el lenguaje Prolog en 1980.JVM. Máquina virtual desarrollada para el

lenguaje Java.

Pila de ejecución. La JVM se basa en la utilización de

una pila de ejecución y un repertorio de instrucciones

que manipulan dicha pila.Código multi-hilo. La máquina virtual

puede darsoporte a varios hilos de ejecución

concurrente.Compilación JIT. Un programa compilado serepresenta mediante un conjunto de ficheros

de códigode bytes que se cargan de forma dinámica y

quecontienen una especificación sobre el

comportamientode una clase

Verificación estática de Código de bytes. Los

ficheros class contienen información sobre elcomportamiento del módulo que puede

verificarse antesde su ejecución.Gestión de memoria dinámica. La máquina

integraun recolector de basura, liberando al

programador degestionar la memoria dinámica.Dependencia del lenguaje Java. La

máquina ha sidodiseñada para ejecutar programas Java,

adaptándosefuertemente al modelo de objetos de Java.

Gracias…..