180 likes | 493 Views
SIMULA. EL PREDECESOR DE LOS LENGUAJES ORIENTADOS A OBJETOS. Asignatura: Programación Declarativa avanzada Alumno: Juan Lucena Raya. INDICE. Introducción Un poco de historia Características Básicas Sintaxis Concurrencia en Simula ¿Qué se hizo mal en Simula?. Introducción.
E N D
SIMULA EL PREDECESOR DE LOS LENGUAJES ORIENTADOS A OBJETOS Asignatura: Programación Declarativa avanzada Alumno: Juan Lucena Raya
INDICE • Introducción • Un poco de historia • Características Básicas • Sintaxis • Concurrencia en Simula • ¿Qué se hizo mal en Simula?
Introducción • Simula es el primer lenguaje de programación orientada a objetos que varios años después de su desarrollo, casi todos los 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 • 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: • 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 B5500 y la URAL 16
Un poco de historia II • 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 • 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 INSTANCIA DINÁMICA Entiempo de ejecución OBJETO
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;OutText(“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 el origen; Origen :- A C :- New Circulo(2,Origen); ! Crea el circulo;
Concurrencia en Simula • Los estados de un proceso son: • 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 • Instrucciones: • 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? • General: • Nacido en un país europeo pequeño • Congelado en 1968 • Costoso • No tiene un IDE moderno • Demasiado complicado • No existen suficientes publicaciones
¿Qué se hizo mal en Simula? • Características del lenguaje: • 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? • Características del LOO: • No tiene herencia múltiple • No tiene interfaces • Simulación: • No tiene colección automática de estadística • No tiene generador de informes • Ningunas instalaciones especializadas útiles (recursos)
Bibliografía • 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/jskl1/talk.html