Angelo Wallner 07-SCT6-146
  Wilfredo Peña 09-EIST-6-006
  Alcys Bautista 09-EIST-6-014
Juan Leandro Medina 09-EIST-040
Maquina abstracta
Puede definirse como un procedimiento para ejecutar un
conjunto 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 Intermedio
       Un programa para una maquina abstracta



 Facil de Producir
  o   Reglas claras de como construirla
 Facil de traducir al lenguaje objeto
Codigo de 3 direcciones
 A = 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 pila
 Memoria independiente para instrucciones y datos
 Toda operacion es con valores de la pila
 Operaciones
   Aritmetica entera
   Manipulacion de pila
   Control de flujo
Intrucciones
 Push v     inserta v en la pila
 ValD w     inserta valor de posicion w
 ValI w     inserta direccion de w
 Pop        saca valor de la pila
 :=         Pop y poner en direccion Pop
 Copy       Pop y Push-Push
máquina virtual
     Es una máquina abstracta para la que existe un
                     intérprete.

 Varios ejemplos de máquinas virtuales:
Desarrollada por Peter Landin en 1966 para
lenguajes funcionales. Posteriormente, la
implementación de lenguajes funcionales ha recurrido a
la utilización de máquinas basadas en transformación de
grafos.
             Máquina de pila desarrollada para
implementar el lenguaje Pascal.
         (Warren Abstract Machine). Desarrollada por
David Warren para el lenguaje Prolog en 1980.
         Máquina virtual desarrollada para el lenguaje
  Java.
La JVM se basa en la utilización de
una pila de ejecución y un repertorio de instrucciones
que manipulan dicha pila.
                        La máquina virtual puede dar
soporte a varios hilos de ejecución concurrente.
                      Un programa compilado se
representa mediante un conjunto de ficheros de código
de bytes que se cargan de forma dinámica y que
contienen una especificación sobre el comportamiento
de una clase
Los
ficheros class contienen información sobre el
comportamiento del módulo que puede verificarse antes
de su ejecución.
                                     La máquina integra
un recolector de basura, liberando al programador de
gestionar la memoria dinámica.
                                      La máquina ha sido
diseñada para ejecutar programas Java, adaptándose
fuertemente al modelo de objetos de Java.
Maquina de pila abstracta

Maquina de pila abstracta

  • 1.
    Angelo Wallner 07-SCT6-146 Wilfredo Peña 09-EIST-6-006 Alcys Bautista 09-EIST-6-014 Juan Leandro Medina 09-EIST-040
  • 2.
    Maquina abstracta Puede definirsecomo un procedimiento para ejecutar un conjunto 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.
  • 3.
    Codigo Intermedio Un programa para una maquina abstracta  Facil de Producir o Reglas claras de como construirla  Facil de traducir al lenguaje objeto
  • 4.
    Codigo de 3direcciones  A = A*8 + B/7 temp1 = A*8 temp2 = B/7 A = temp1 + temp2  Variable temporales
  • 5.
    Maquina de pila Esun 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
  • 6.
    Maquina de pila Memoria independiente para instrucciones y datos  Toda operacion es con valores de la pila  Operaciones  Aritmetica entera  Manipulacion de pila  Control de flujo
  • 7.
    Intrucciones  Push v inserta v en la pila  ValD w inserta valor de posicion w  ValI w inserta direccion de w  Pop saca valor de la pila  := Pop y poner en direccion Pop  Copy Pop y Push-Push
  • 8.
    máquina virtual Es una máquina abstracta para la que existe un intérprete.  Varios ejemplos de máquinas virtuales:
  • 9.
    Desarrollada por PeterLandin en 1966 para lenguajes funcionales. Posteriormente, la implementación de lenguajes funcionales ha recurrido a la utilización de máquinas basadas en transformación de grafos. Máquina de pila desarrollada para implementar el lenguaje Pascal. (Warren Abstract Machine). Desarrollada por David Warren para el lenguaje Prolog en 1980. Máquina virtual desarrollada para el lenguaje Java.
  • 10.
    La JVM sebasa en la utilización de una pila de ejecución y un repertorio de instrucciones que manipulan dicha pila. La máquina virtual puede dar soporte a varios hilos de ejecución concurrente. Un programa compilado se representa mediante un conjunto de ficheros de código de bytes que se cargan de forma dinámica y que contienen una especificación sobre el comportamiento de una clase
  • 11.
    Los ficheros class contieneninformación sobre el comportamiento del módulo que puede verificarse antes de su ejecución. La máquina integra un recolector de basura, liberando al programador de gestionar la memoria dinámica. La máquina ha sido diseñada para ejecutar programas Java, adaptándose fuertemente al modelo de objetos de Java.