simula el predecesor de los lenguajes orientados a objetos asignatura: programación declarativa...

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

Upload: reynaldo-madray

Post on 28-Jan-2016

215 views

Category:

Documents


0 download

TRANSCRIPT

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

SIMULASIMULA

EL PREDECESOR DE LOS EL PREDECESOR DE LOS LENGUAJES ORIENTADOS A LENGUAJES ORIENTADOS A

OBJETOSOBJETOS

Asignatura: Programación Declarativa avanzadaAlumno: Juan Lucena Raya

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

INDICEINDICE

IntroducciónIntroducción Un poco de historiaUn poco de historia Características BásicasCaracterísticas Básicas SintaxisSintaxis Concurrencia en SimulaConcurrencia en Simula ¿Qué se hizo mal en Simula?¿Qué se hizo mal en Simula?

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

IntroducciónIntroducción

SimulaSimula es el primer lenguaje de es el primer lenguaje de programación orientada a objetosprogramación orientada a objetos que que varios años después de su desarrollo, varios años después de su desarrollo, casi todos los lenguajes modernos casi todos los lenguajes modernos comenzaron a utilizar sus principios de comenzaron a utilizar sus principios de orientación a objetos. Así fue como se orientación a objetos. Así fue como se popularizaron términos como popularizaron términos como clasesclases, , objetosobjetos, , instanciasinstancias, , herenciaherencia, , polimorfismopolimorfismo, etc. , etc.

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

Un poco de HistoriaUn poco de Historia

1959-1960. Simula I. Proceso orientado a 1959-1960. Simula I. Proceso orientado a la simulación discreta del mundo real, al la simulación discreta del mundo real, al principio como un paquete que extendía al principio como un paquete que extendía al lenguaje Algot 60. Las principales lenguaje Algot 60. Las principales extensiones fueron:extensiones fueron: Declaración de clasesDeclaración de clases Generar objetos de un clase declaradaGenerar objetos de un clase declarada Nombrar los objetos generadosNombrar los objetos generados Estructura jerárquica de declaración de clasesEstructura jerárquica de declaración de clases

Se implementó en 1964 para la serie de Se implementó en 1964 para la serie de computadoras 1100 de UNIVAC y computadoras 1100 de UNIVAC y posteriormente para la Burroughs B5500 y posteriormente para la Burroughs B5500 y la URAL 16 la URAL 16

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

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

autores Ole Johan Dahl, Kristen Nygaard y Bjorn autores Ole Johan Dahl, Kristen Nygaard y Bjorn Mygrhaugdel en la Conferencia de Trabajo en Mygrhaugdel en la Conferencia de Trabajo en Lenguajes de Simulación IFIO TC 2, en Lysebu cerca Lenguajes de Simulación IFIO TC 2, en Lysebu cerca de de OsloOslo en mayo de en mayo de 19671967, este era un lenguaje de , este era un lenguaje de propósito general.propósito general.

Implementaciones para ordenadores IBM, DEC, Implementaciones para ordenadores IBM, DEC, Control Data y UNIVAC. Control Data y UNIVAC.

En 1986 se acortó su nombre a Simula, por el que En 1986 se acortó su nombre a Simula, por el que se conoce en la actualidad.se conoce en la actualidad.

Hoy en día, el interés de los creadores de Hoy en día, el interés de los creadores de SimulaSimula ha producido un segundo lenguaje de ha producido un segundo lenguaje de programación, llamado programación, llamado BetaBeta, el cual generaliza , el cual generaliza todas las construcciones del lenguaje en una única todas las construcciones del lenguaje en una única idea denominada idea denominada patrónpatrón..

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

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

pueden resolverse individualmente se conoce pueden resolverse individualmente se conoce en Simula como en Simula como ModularizaciónModularización..

Un módulo es una estructura de datos a la que Un módulo es una estructura de datos a la que se añaden sus algoritmos y acciones se añaden sus algoritmos y acciones asociadas.asociadas.

Cuando se ejecuta un bloque se genera una Cuando se ejecuta un bloque se genera una instancia dinámica de él.instancia dinámica de él.

Módulo = semántica del programa.Módulo = semántica del programa. Instancia dinámica = componente de un Instancia dinámica = componente de un

proceso en ejecución.proceso en ejecución. Distintitas instancias de un mismo módulo Distintitas instancias de un mismo módulo

pueden coexistir en un proceso de pueden coexistir en un proceso de computación.computación.

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

Características BásicasCaracterísticas Básicas

CLASE = DATOS + ACCIONESCLASE = DATOS + ACCIONES

INSTANCIAINSTANCIADINÁMICADINÁMICAOBJETOOBJETOEnEn tiempo de tiempo de

ejecuciónejecución

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

SintaxisSintaxisClass Punto(X,Y); Real X,Y;Class Punto(X,Y); Real X,Y;

BeginBeginProcedure Print; Begin ... End;Procedure Print; Begin ... End;Procedure Shift(Dx, Dy); Real Dx, Dy; Begin ... End; Procedure Shift(Dx, Dy); Real Dx, Dy; Begin ... End; Print; ! Vida del punto; Print; ! Vida del punto;

End of Punto;End of Punto;

Class Circulo(Radio, Centro); Real Radio; Ref(Punto) Centro;Class Circulo(Radio, Centro); Real Radio; Ref(Punto) Centro;BeginBegin

Procedure Shift(Dx, Dy); Real Dx, Dy; Begin ... End;Procedure Shift(Dx, Dy); Real Dx, Dy; Begin ... End; OutText(“Circulo creado en "); ! Vida del Circulo;OutText(“Circulo creado en "); ! Vida del Circulo;Centro.Print;Centro.Print;

End of Circulo;End of Circulo;

Punto Class Particula;Punto Class Particula;BeginBegin

Integer masa;Integer masa;End of Particula;End of Particula;

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

SintaxisSintaxis

Ref(Punto) A,Origen;Ref(Punto) A,Origen;

Ref(Circulo) C;Ref(Circulo) C;

A :- New Punto(0,0); ! Crea el A :- New Punto(0,0); ! Crea el origen;origen;

Origen :- AOrigen :- A

C :- New Circulo(2,Origen); ! Crea C :- New Circulo(2,Origen); ! Crea el circulo;el circulo;

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

Concurrencia en SimulaConcurrencia en Simula

Los estados de un proceso son:Los estados de un proceso son: Activo: un segmento del proceso esta Activo: un segmento del proceso esta

siendo ejecutadosiendo ejecutado Suspendido: el proceso es introducido en Suspendido: el proceso es introducido en

el scheduler. A menos que sea cancelado, el scheduler. A menos que sea cancelado, este será activado en el futuro.este será activado en el futuro.

Pasivo: el proceso no esta en el scheduler. Pasivo: el proceso no esta en el scheduler. Debe ser activado por otro proceso.Debe ser activado por otro proceso.

Terminado: el proceso ha finalizado y no Terminado: el proceso ha finalizado y no puede ser activado de nuevo.puede ser activado de nuevo.

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

Concurrencia en SimulaConcurrencia en Simula

Instrucciones:Instrucciones: Activate Activate X activa un proceso pasivo X activa un proceso pasivo XX.. ReactivateReactivate X. otra forma de activar un proceso X. otra forma de activar un proceso

pasivo o cambia el próximo tiempo de activación pasivo o cambia el próximo tiempo de activación si el proceso es activado o suspendido.si el proceso es activado o suspendido.

HoldHold(T) genera un retraso T en la vida del (T) genera un retraso T en la vida del proceso.proceso.

Passivate Passivate el proceso pasa al estado pasivo.el proceso pasa al estado pasivo. CancelCancel(X) cancela la próxima activación de X.(X) cancela la próxima activación de X. WaitWait(Q) el proceso pasa al estado pasivo y lo (Q) el proceso pasa al estado pasivo y lo

pone al final de una lista (cola) Q.pone al final de una lista (cola) Q.

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

¿Qué se hizo mal en ¿Qué se hizo mal en Simula?Simula?

General:General: Nacido en un país europeo pequeñoNacido en un país europeo pequeño Congelado en 1968Congelado en 1968 CostosoCostoso No tiene un IDE modernoNo tiene un IDE moderno Demasiado complicadoDemasiado complicado No existen suficientes publicacionesNo existen suficientes publicaciones

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

¿Qué se hizo mal en ¿Qué se hizo mal en Simula?Simula?

Características del lenguaje:Características del lenguaje: Instalaciones limitadas de acceso a Instalaciones limitadas de acceso a

archivoarchivo Tipos de datos que faltan (registros, Tipos de datos que faltan (registros,

conjuntos)conjuntos) No tiene paralelismo avanzado ni soporte No tiene paralelismo avanzado ni soporte

en tiempo realen tiempo real No soporta GUINo soporta GUI Ficheros ejecutables grandes para Ficheros ejecutables grandes para

programas pequeñosprogramas pequeños

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

¿Qué se hizo mal en ¿Qué se hizo mal en Simula?Simula?

Características del LOO:Características del LOO: No tiene herencia múltipleNo tiene herencia múltiple No tiene interfacesNo tiene interfaces

Simulación:Simulación: No tiene colección automática de No tiene colección automática de

estadísticaestadística No tiene generador de informesNo tiene generador de informes Ningunas instalaciones especializadas Ningunas instalaciones especializadas

útiles (recursos)útiles (recursos)

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

BibliografíaBibliografía

Simula como predecesor de los Simula como predecesor de los lenguajes orientados a objetos. lenguajes orientados a objetos. PF/133PF/133

History of Programming Languajes. History of Programming Languajes. Edited by Richard L. WexelblatEdited by Richard L. Wexelblat

http://es.wikipedia.org/wiki/Simulahttp://es.wikipedia.org/wiki/Simula http://staff.um.edu.mt/jskl1/talk.htmlhttp://staff.um.edu.mt/jskl1/talk.html