SIMULA EL PREDECESOR DE LOS LENGUAJES ORIENTADOS A

  • Slides: 16
Download presentation
SIMULA EL PREDECESOR DE LOS LENGUAJES ORIENTADOS A OBJETOS Asignatura: Programación Declarativa avanzada Alumno:

SIMULA EL PREDECESOR DE LOS LENGUAJES ORIENTADOS A OBJETOS Asignatura: Programación Declarativa avanzada Alumno: Juan Lucena Raya

INDICE n n n Introducción Un poco de historia Características Básicas Sintaxis Concurrencia en

INDICE n n n Introducción Un poco de historia Características Básicas Sintaxis Concurrencia en Simula ¿Qué se hizo mal en Simula?

Introducción n Simula es el primer lenguaje de programación orientada a objetos que varios

Introducción n Simula es el primer lenguaje de programación orientada a objetos que varios años después de su desarrollo, casi todos lenguajes modernos comenzaron a utilizar sus principios de orientación a objetos. Así fue como se popularizaron términos como clases, objetos, instancias, herencia, polimorfismo, etc.

Un poco de Historia n 1959 -1960. Simula I. Proceso orientado a la simulación

Un poco de Historia n 1959 -1960. Simula I. Proceso orientado a la simulación discreta del mundo real, al principio como un paquete que extendía al lenguaje Algot 60. Las principales extensiones fueron: n n n Declaración de clases Generar objetos de un clase declarada Nombrar los objetos generados Estructura jerárquica de declaración de clases Se implementó en 1964 para la serie de computadoras 1100 de UNIVAC y posteriormente para la Burroughs B 5500 y la URAL 16

Un poco de historia II n n Simula 67 fue oficialmente lanzado por sus

Un poco de historia II n n Simula 67 fue oficialmente lanzado por sus autores Ole Johan Dahl, Kristen Nygaard y Bjorn Mygrhaugdel en la Conferencia de Trabajo en Lenguajes de Simulación IFIO TC 2, en Lysebu cerca de Oslo en mayo de 1967, este era un lenguaje de propósito general. Implementaciones para ordenadores IBM, DEC, Control Data y UNIVAC. En 1986 se acortó su nombre a Simula, por el que se conoce en la actualidad. Hoy en día, el interés de los creadores de Simula ha producido un segundo lenguaje de programación, llamado Beta, el cual generaliza todas las construcciones del lenguaje en una única idea denominada patrón.

Características Básicas n n n La idea de dividir un sistema en bloques que

Características Básicas n n n La idea de dividir un sistema en bloques que pueden resolverse individualmente se conoce en Simula como Modularización. Un módulo es una estructura de datos a la que se añaden sus algoritmos y acciones asociadas. Cuando se ejecuta un bloque se genera una instancia dinámica de él. Módulo = semántica del programa. Instancia dinámica = componente de un proceso en ejecución. Distintitas instancias de un mismo módulo pueden coexistir en un proceso de computación.

Características Básicas CLASE = DATOS + ACCIONES En tiempo de ejecución OBJETO INSTANCIA DINÁMICA

Características Básicas CLASE = DATOS + ACCIONES En tiempo de ejecución OBJETO INSTANCIA DINÁMICA

Sintaxis Class Punto(X, Y); Real X, Y; Begin Procedure Print; Begin. . . End;

Sintaxis Class Punto(X, Y); Real X, Y; Begin Procedure Print; Begin. . . End; Procedure Shift(Dx, Dy); Real Dx, Dy; Begin. . . End; Print; ! Vida del punto; End of Punto; Class Circulo(Radio, Centro); Real Radio; Ref(Punto) Centro; Begin Procedure Shift(Dx, Dy); Real Dx, Dy; Begin. . . End; Out. Text(“Circulo creado en "); ! Vida del Circulo; Centro. Print; End of Circulo; Punto Class Particula; Begin Integer masa; End of Particula;

Sintaxis Ref(Punto) A, Origen; Ref(Circulo) C; A : - New Punto(0, 0); ! Crea

Sintaxis Ref(Punto) A, Origen; Ref(Circulo) C; A : - New Punto(0, 0); ! Crea el origen; Origen : - A C : - New Circulo(2, Origen); ! Crea el circulo;

Concurrencia en Simula n Los estados de un proceso son: n n Activo: un

Concurrencia en Simula n Los estados de un proceso son: n n Activo: un segmento del proceso esta siendo ejecutado Suspendido: el proceso es introducido en el scheduler. A menos que sea cancelado, este será activado en el futuro. Pasivo: el proceso no esta en el scheduler. Debe ser activado por otro proceso. Terminado: el proceso ha finalizado y no puede ser activado de nuevo.

Concurrencia en Simula n Instrucciones: n n n Activate X activa un proceso pasivo

Concurrencia en Simula n Instrucciones: n n n Activate X activa un proceso pasivo X. Reactivate X. otra forma de activar un proceso pasivo o cambia el próximo tiempo de activación si el proceso es activado o suspendido. Hold(T) genera un retraso T en la vida del proceso. Passivate el proceso pasa al estado pasivo. Cancel(X) cancela la próxima activación de X. Wait(Q) el proceso pasa al estado pasivo y lo pone al final de una lista (cola) Q.

¿Qué se hizo mal en Simula? n General: Nacido en un país europeo pequeño

¿Qué se hizo mal en Simula? n General: Nacido en un país europeo pequeño n Congelado en 1968 n Costoso n No tiene un IDE moderno n Demasiado complicado n No existen suficientes publicaciones n

¿Qué se hizo mal en Simula? n Características del lenguaje: n n n Instalaciones

¿Qué se hizo mal en Simula? n Características del lenguaje: n n n Instalaciones limitadas de acceso a archivo Tipos de datos que faltan (registros, conjuntos) No tiene paralelismo avanzado ni soporte en tiempo real No soporta GUI Ficheros ejecutables grandes para programas pequeños

¿Qué se hizo mal en Simula? n Características del LOO: n n n No

¿Qué se hizo mal en Simula? n Características del LOO: n n n No tiene herencia múltiple No tiene interfaces Simulación: n n n No tiene colección automática de estadística No tiene generador de informes Ningunas instalaciones especializadas útiles (recursos)

Bibliografía n n Simula como predecesor de los lenguajes orientados a objetos. PF/133 History

Bibliografía n n Simula como predecesor de los lenguajes orientados a objetos. PF/133 History of Programming Languajes. Edited by Richard L. Wexelblat http: //es. wikipedia. org/wiki/Simula http: //staff. um. edu. mt/jskl 1/talk. html