Download El lenguaje SIMULA

Document related concepts
no text concepts found
Transcript
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
En tiempo de
ejecución
OBJETO
INSTANCIA
DINÁMICA
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