martes, 23 de noviembre de 2010

Smalltalk

Materia: Lenguajes de Programacion.
Introduccion.



Smalltalk es un lenguaje de programacion que pernite realizar tareas de computacion mediante la interaccion con un entorno de objetos virtuales. Metaforicamente, se puede considerar que un smalltalk es un mundo virtual donde viven objetos que se comunican mediante el envio de mensajes.
Un sistema de Smalltalk esta compuesto por:

• Maquina virtual.

• Imagen virtual que contiene todos los objetos del sistema.

• Lenguaje de programacion ( tambien conocido como Smalltalk).

• Biblioteca de objetos reusables.

• Opcionalmente un entorno de desarrollo que funciona como un sistema en tiempo de ejecucion.

Historia del Smalltalk

Los origenes de Smalltalk se encuentran en las investigaciones realizadas por Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldberg y otros durante los años setenta en el Palo Alto Research Institute de Xerox (conocido como Xerox PARC), para la creacion de un sistema informatico orientado a la educacion. El objetivo era crear un sistema que permitiese expandir la creatividad de sus usuarios proporcionando un entorno para la experimentacion, creacion e investigacion.

Smalltalk es considerado el primero de los lenguajes orientados a objetos (OOP), aunque en realidad el primero en implementar programacion orientada a objetos fue Simula. En Smalltalk todo es un objeto, incluidos los numeros reales o el propio entorno de Smalltalk.

Terminología

Un programa Smalltalk consiste únicamente de objetos, un concepto que se utiliza universalmente dentro de todo sistema Smalltalk. Prácticamente todo, desde un número natural como el 4 hasta un servidor web es considerado un objeto. Los objetos Smalltalk presentan características comunes

• Tienen una memoria propia.

• Poseen capacidad para comunicarse con otros objetos.

• Poseen la capacidad de heredar características de objetos ancestros.

• Tienen capacidad de procesamiento.

Los objetos se comunican entre sí mediante el envío de mensajes.. Asimismo, un objeto puede proveer muchas operaciones (actualmente esto está determinado por cada implementación)

Las definiciones de estas operaciones en los objetos son llamadas métodos. Un método especifica la reacción de un objeto cuando recibe un mensaje que es dirigido a ese método. La resolución (en el sentido de ligado) de un mensaje a un método es dinámica. La colección entera de métodos de un objeto es llamada protocolo de mensajes o interfaz de mensajes del objeto. Los mensajes pueden ser parametrizados, estos parámetros serán objetos, y el resultado o respuesta del mismo también será un objeto.

Las características comunes de objetos está capturado bajo la noción de clase, de tal forma que los objetos agrupados bajo una clase son llamados instancias de ella. Las instancias son creadas durante la ejecución de un programa con algún propósito y son barridos automáticamente en el momento que no son necesitados más por el recolector de basura. Exceptuando algunos objetos especiales como los muy simples, llamados literales (números, cadenas, etc), cada objeto tiene su propio estado local y representa una instancia diferente de su clase.
Como lenguaje tiene las siguientes caracteristicas:

• Orientacion a objetos pura.

• Tipado dinamico.

• Interraccion entre objetos mediante el envio de mensajes.

• Herencia simple y con raiz comun.

• Reflexion computacional completa.

• Recolleccion de basura.

• Compilacion en tiempo de ejecucion o interpretado (Dependieno de la distribucion o de el proveedor).

• Multiplies implementaciones.

La sintaxis de Smalltalk-80 tinde a ser minimilista. Esto significa que existe un grupo chico de palabras reservadas y declaraciones en comparacion con la mayoria de los lenguajes populares.Smalltalk posee un grupo de 5 palabras reservadas: self, nil, super, true y false.

Parte de la funcionalidad básica:
Todas las estructuras de datos Smalltalk se representó, como objetos, y un rico repertorio de estos se encuentra disponible en su biblioteca de clases.




Object es la raíz de la herencia de la jerarquía de Smalltalk, proporcionando una funcionalidad básica a todos los objetos. Class Collection es una de las muchas subclases de objetos de clase, sino que pueden ser más especializada en una amplia gama de estructuras de datos. Establece son sólo uno de ellos, con diccionarios como una subclase. Los diccionarios se utilizan para almacenar las asociaciones entre pares de objetos. El código siguiente muestra el uso de estas estructuras de datos en un ejemplo sencillo. En primer lugar se define el diccionario, la asociación de algunos viejos amigos con una selección de las virtudes. Los mensajes se envían a este objeto, lista y la búsqueda de claves.




Smalltalk se adhiere a una interpretación muy estricta de la orientación a objetos, e incluso las estructuras de control se implementan como patrones de mensaje. Selección de los caminos alternativos de ejecución es por tanto el apoyo a través de ifTrue: ifFalse,:, y ifFalse: ifTrue: mensajes. Loops se puede especificar con whileTrue: whileFalse,:, timesRepeat:, no: a: hacer:, recoger: oa través de la recursividad. Smalltalk utiliza la noción de bloques de aplazar la evaluación. Los bloques pueden tener argumentos, puede tener variables temporales, y se utilizan para encapsular código que pueden ser evaluados más adelante. Entre otras cosas que son comúnmente usados como argumentos para controlar las estructuras. Puesto que son los propios objetos, los bloques pueden ser obligados a identificadores. El mensaje de valor de las fuerzas de la ejecución de un bloque.



 
Bibliografias:

http://es.wikipedia.org/wiki/Smalltalk

http://www.cosc.canterbury.ac.nz/wolfgang.kreutzer/cosc205/smalltalk1.html

1 comentario: