PDF de programación - El lenguaje Simula

Imágen de pdf El lenguaje Simula

El lenguaje Simulagráfica de visualizaciones

Publicado el 9 de Agosto del 2020
900 visualizaciones desde el 9 de Agosto del 2020
209,5 KB
21 paginas
Creado hace 18a (27/03/2006)
Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos



EEELLL LLLEEENNNGGGUUUAAAJJJEEE



SSSIIIMMMUUULLLAAA



1

Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos

00.. ÍÍNNDDIICCEE



1. Introducción.

2. Desarrollo y Creación del Lenguaje.



3. Características.

3.1 Simula vs. Smalltalk.
3.2 Resumen de características.
3.3 Conclusion.


4. Breve introducción sobre la Sintaxis en Simula.

4.1 Ejemplo de un producto Matricial.


5. La clase Histograma.

5.1 Solución en Simula .
5.2 Solucion en Visual Basic .NET

5.2.1 Declarando una clase Histograma.
5.2.2 Definiendo un objeto de

la clase

Histograma.



6. La Concurrencia .

6.1 Breve introducción a la Concurrencia.
6.2 La Concurrencia en Simula.
6.3 Conclusion.


7. Polimorfismo & Promoción Numérica.

8. Conclusión Final.

9. Bibliografía.


2

Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos

EEELLL LLLEEENNNGGGUUUAAAJJJEEE SSSIIIMMMUUULLLAAA



11.. IINNTTRROODDUUCCCCIIÓÓNN



A mediados de los años 60 se empezó a vislumbrar el uso de
las computadoras para la simulación de problemas del mundo real,
estos problemas estaban llenos objetos normalmente muy complejos,
los cuales eran difícilmente traducidos a los tipos de datos primitivos
de los pocos lenguajes de la época.
Así fue como a partir de esta necesidad a dos Noruegos se les ocurrió
el concepto de “OBJETO” y sus colecciones CLASES DE OBJETOS.
Nació así el lenguaje SIMULA, un lenguaje que contiene el embrión de
lo que hoy se conoce como la PROGRAMACIÓN ORIENTADA A
OBJETOS.


22.. DDEESSAARRRROOLLLLOO YY CCRREEAACCIIÓÓNN DDEELL LLEENNGGUUAAJJEE


Sus creadores fueron Kristen Nygaard y Ole-Johan Dahl del
Centro Noruego de Computación en Oslo, y su desarrollo se extendió
desde 1962 a 1967. El objetivo inicial era definir un lenguaje de
propósito específico para aplicaciones de simulación.
De hecho, realizaron una primera versión, bajo contrato con la
empresa UNIVAC, que no incluía conceptos novedosos desde el punto
de vista de programación -aunque sí desde el punto de vista de
simulación- con respecto al lenguaje más avanzado de esos años,
Algol 60.
La versión de 1967 tenía como uno de sus objetivos ahorrar esfuerzo
de programación. Nygaard y Dahl habían desarrollado grandes
programas de simulación con la primera versión, y habían detectado
dos deficiencias:

l. Las entidades proceso y estación, útiles en simulación, eran entes
dinámicos que se creaban y destruían a lo largo de una ejecución. El
Concepto de bloque derivado de Algol 60, era insuficiente para
reflejar este dinamismo. Por otra parte, cada entidad tenía asociadas
un conjunto de variables y un conjunto de operaciones que las
manipulaban. Con lo que, el código del programa no reflejaba
claramente esta relación.

2. El código de muchas entidades era bastante semejante, pero el
lenguaje no proporcionaba un mecanismo que permitiera reutilizar las
partes comunes.



3

Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos


El primer hallazgo de Nygaard y Dahl fue la distinción entre una clase
de entidades -un texto suministrado por el programador- y los
objetos que se derivan de ella -los ejemplares de la misma creados y
destruidos dinámicamente a lo largo de una ejecución concreta. Una
clase en Simula 67 consiste en una colección de procedimientos,
asociados a un conjunto de declaraciones de variable. Cada vez que
se crea un objeto de una clase, se asigna memoria para contener
una colección de dichas variables. Esta idea, hoy familiar, exigía dos
innovaciones con respecto a los lenguajes de la época:


• Escapar de la estructura de bloques. A diferencia de ésta, un
objeto ha de "sobrevivir" al procedimiento que lo crea. Varios
objetos de una misma clase han de poder coexistir en un
mismo ámbito.


• Necesidad de un tipo de datos "referencia a un objeto" que
permitiera designar objetos distintos en distintos momentos.
Este tipo, llamado ref en el lenguaje, no era otra cosa que un
puntero.

Con el comenzaron a introducir abstracciones de datos a los



lenguajes de programación.
Además pensaron en la posibilidad de comenzar a reutilizar código,
con sus respectivas y oportunas modificaciones, así se comenzó a
formar la idea de Jerarquías de HERENCIA DE CLASES.
Fueron ellos también los que introdujeron el concepto de

POLIFORMISMO introducido vía procedimientos virtuales, idea que
derivó en el concepto de PROMOCION NUMERICA y según la cual los
objetos pueden ser clasificados o tipificados en una serie de súper
clases de forma que se establece la Jerarquía de Clase.

Todas estas ideas revolucionarias fueron plasmadas en una
primera versión del lenguaje SIMULA, a principios de los 60,
alcanzando su madurez con una versión final en el año 1967, dando
lugar a SIMULA67.

Aunque pensado como un lenguaje de propósito general,
Simula tuvo su mayor excito en las aplicaciones de simulación
discreta, gracias a
facilitaba
considerablemente la programación.



la

clase SIMULATION que



4

Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos

33.. CCAARRAACCTTEERRÍÍSSTTIICCAASS::

Simula fue, probablemente, el primer lenguaje que presentó las
nociones de clase y herencia jerárquica. No se admite la herencia
múltiple. El ocultamiento de información se lleva a cabo “protegiendo”
una característica, lo cual, a su vez, evita que sea heredada en lo
sucesivo.
Admite la sobrecarga de métodos.
La comprobación de tipos se puede realizar, bien estáticamente en el
momento de la compilación, para mayor eficiencia, o bien en el
momento de la ejecución si se define una característica como
“virtual”.

Problema:
El sistema necesita llevar a cabo la recolección de basura de
vez en cuando, es decir, necesita reutilizar la memoria que fue
ocupada por instancias asignadas anteriormente, pero que ya
no se están utilizando. (Ralentiza los programas)


Hace más énfasis en los procesos que en los datos, pero Simula
es responsable de muchas de las ideas que informaron a sus
descendientes, sobre todo la idea de clases, instancias y herencia.
La idea de abstracción está implícita, pero las nociones, como el paso
de mensajes, tuvieron que esperar la llegada de Smalltalk.
Simula es un lenguaje orientado a objetos, puro ya que no permite
salirse de la orientación a objetos para realizar programación clásica.

Problema:
Cosa que le perjudicó ya que la comunidad científica dio la
espalda a un lenguaje que no permitía ningún modo de
programación imperativa clásica.


33..11.. SSIIMMUULLAA VVSS.. SSMMAALLLLTTAALLKK

Ahora mostraremos un resumen de las características de Simula en
comparación con su sucesor Smalltalk.

A favor de Simula67:




Tenía una comprobación de tipos en tiempo de compilación,
lo que permitía detectar errores de tipos. Smalltalk era un
lenguaje sin tipos, por lo que no existía declaraciones de tipo
de variables y no se realizaba ninguna comprobación estricta
de tipos. Así los errores que surgen cuando un objeto recibe



5

Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos

un mensaje que no pueda resolver, se procesan todos en
tiempo de Ejecución.

Era un lenguaje ampliamente concurrente (debido a sus
características
innatas como simulador). En cambio
Smalltalk permitía una concurrencia escasa.
Separación Clase-Objeto. En Smalltalk todo eran Objetos,
incluso las clases eran también Objetos.







En contra:



Smalltalk no es solamente un lenguaje, sino todo un entorno
completo de programación, que incluye numerosas librerías
de clases, contemplándose las abstracciones básicas como
colecciones o diccionarios, así como clases gráficas para el
manejo de ventanas, barras de desplazamiento, etc. Es, por
tanto, un lenguaje casi imposible de separar de su entorno
de desarrollo. En cambio Simula67 carecía de un
entorno apropiado con sus características.

Simula, no disponía de depuradores, visores y
tampoco disponía de ninguna aplicación que
permitiese visualizar su Jerarquía de clases. Smalltalk
si disponía de ello, lo que facilitaba el trabajo de los
programadores. Consiguiendo una mejor difusión entre la
comunidad de programadores que Simula.

La sintaxis en Simula, no era ni intuitiva ni sencilla.
Puesto que era un lenguaje tipado, tanto las variables como
los atributos necesitan tener un tipo asociado. Esto unido a
la falta de entornos de desarrollo y depuradores hizo aun
mas dificultosa la tarea de programar en Simula.







Todo lo contrario pasaba en Smalltalk, su sintaxis era muy
simple y uniforme, variables y atributos no necesitaban de tener
un tipo y en principio TODO está definido como objeto,
incluyendo a las propias clases.


6



Programación Declarativa Avanzada.



Fco Jesús Fdez Burgos



33..22.. RREESSUUMMEENN:: SSIIMMUULLAA VVSS.. SSMMAALLLLTTAALLKK



CARACTERISTICAS SIMULA 67

SMALLTALK 81

Tardía

Si

Si

Escasa

Si

No
Si

No

No

Comprobación de
tipos /ligadura

Si

Polimorfismo

Ocultamiento de la
información

Concurrencia

Herencia

Si

Si

Si

Si

Herencia múltiple No
Recol
  • Links de descarga
http://lwp-l.com/pdf18038

Comentarios de: El lenguaje Simula (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad