Post on 24-Jun-2015
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
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.