Ir arriba

Lenguaje: SMALL TALK

En 1994, Booch, Rumbaugh y Jacobson al unificar las notaciones de sus métodos, dan origen al UML: Unified Modeling Language que es un lenguaje para visualizar, especificar, construir y documentar los artefactos (modelos) de un sistema que involucra una gran cantidad de software, desde una perspectiva OO.
  • UML es una notación, no es un proceso.
  • Se han definido muchos procesos para UML. Rational ha ideado RUP, “proceso unificado”.
  • Permite especificar todas las decisiones de análisis, diseño e implementación, construyéndose modelos precisos, no ambiguos y completos.
  • UML puede conectarse a lenguajes de programación:
    - Ingeniería directa.
    - Inversa.
  • Permite documentar todos los artefactos de un proceso de desarrollo (requisitos, arquitectura, pruebas, versiones,..)
Modelado
de
casos
Modelado
conceptual
Diagrama
de
interacción
Diagrama
de
Clases
Smalltalk es un lenguaje:
- Reflexivo de programación de tipado dinámico, orientado a objetos, donde todo es un objeto desde un número natural hasta un servidor web.
- Con un entorno de objetos, donde incluso el propio sistema es un objeto.
- Donde, metafóricamente considera un mundo virtual habitado por objetos que se comunican entre sí, mediante el envío de mensajes.
- Donde todo es un objeto, incluidos los números reales
- Considerado el primero de los lenguajes orientados a objetos (POO), (aunque el 1ro fue Simula).

Como lenguaje sus características son:
- Orientación a Objetos
- Tipado dinámico
- Interacción entre objetos mediante envío de mensajes
- Herencia simple y con raíz común
- Reflexión computacional completa
- Recolección de basura
- Compilación en tiempo de ejecución o Interpretado.
- Múltiples Implementaciones

Un sistema Smalltalk posee:
- Una Máquina virtual (Virtual machine)
- Un archivo llamado "Imagen", que contiene a todos los objetos del sistema
- Un lenguaje de programación (también conocido como Smalltalk)
- Una biblioteca de "objetos reusables"

Características comunes de los objetos Smalltalk:
- Tienen una memoria propia.
- Poseen capacidad para comunicarse con otros objetos.
- Poseen capacidad de heredar características de objetos ancestros.
- Tienen capacidad de procesamiento.
- Los objetos se comunican entre sí mediante el envío de mensajes y cada objeto puede proveer muchas operaciones, cuyas definiciones son llamadas métodos.
- Un método especifica la reacción del objeto cuando recibe un mensaje dirigido a ese método, cuya resolución de un mensaje a un método es dinámica.
- Protocolo o interfaz de mensajes del objeto, es la colección de métodos 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 se registran en la noción de clase, así, los objetos agrupados bajo una clase son llamados instancias de ella.
- Las instancias se crean durante la ejecución del programa con algún propósito y son barridos automáticamente el recolector de basura, cuando ya no son necesitados.
- 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.

El entorno Smalltalk:
- Las mas conocidad implementaciones de Smalltalk son VisualWorks, Squeak, VisualSmalltalk, VisualAge, Dolphin, Pharo Smalltalk, Smalltalk X.
- Es un entorno de interacción diferente al entorno de desarrollo de otras tecnologías como Microsoft Visual Studio.Net o Eclipse.
- Es gráfico y funciona como sistema en tiempo de ejecución que integra varias herramientas de programación (Smalltalk), utilidades multimedia, interfaces para ejecutar código no nativo a Smalltalk y servicios del sistema operativo.
- La metodología de trabajo y concepción de la programación, permiten considerar a Smalltalk más que un simple lenguaje de programación.
- No requiere para desarrollar software del ciclo típico de las tecnologías tradicionales: Arrancar un editor de texto, compilar y ejecutar y terminar la aplicación.
- Manipula el entorno mismo, comúnmente mediante el Navegador del Sistema.

La sintaxis de Smalltalk:
- No posee una notación explícita para describir un programa entero. Sí se utiliza una sintaxis explícita para definir ciertos elementos de un programa, tales como métodos, pero la manera en que tales elementos están estructurados dentro de un programa entero generalmente es definida por las múltiples implementaciones. El estándar mismo no promueve otra dirección, por lo que define una sintaxis abstracta de programas Smalltalk, que define todos los elementos que constituyen un programa Smalltalk y la manera en que esos elementos están lógicamente compuestos por otros elementos, sin embargo, cada implementación es libre de definir y utilizar las muchas sintaxis posibles que están conformes a la sintaxis abstracta estándar. Un ejemplo de una sintaxis concreta es el Formato de Intercambio Smalltalk (o SIF, de Smalltalk Interchange Format) definida en el mismo estándar.
- La sintaxis de Smalltalk-80 tiende a ser minimalista. Esto significa que existen un grupo pequeño de palabras reservadas y declaraciones en comparación con la mayoría de los lenguajes populares. Smalltalk posee un grupo de 5 palabras reservadas: self, super, nil, true y false.

Recolección de basura:
En Smalltalk no es necesario desalocar objetos explícitamente, por lo tanto no proporciona mecanismos para ello. Las implementaciones utilizan técnicas de recolección de basura para detectar y reclamar espacio en memoria asociado con objetos que ya no se utilizarán más en el sistema. En Smalltalk la recolección de basura es integrada configurable. La forma de ejecución del recolector de basura es en background, es decir, como un proceso de baja prioridad no interactivo, aunque en algunas implementaciones es posible ejecutarlo a demanda, siendo posible definir configuraciones de memoria especiales para cada sistema mediante políticas (por ejemplo en VisualWorks). La frecuencia y características de la recolección depende de la técnica utilizada por la implementación. Adicionalmente algunas implementaciones de Smalltalk proporcionan soporte para mecanismos de finalización como el uso de Ephemerons.

Reflexión computacional:
Smalltalk-80 provee reflexión computacional estructural y comportacional, ya que es un sistema implementado en sí mismo. La reflexión estructural se manifiesta en que las clases y métodos que define el sistema son en sí mismos objetos también y forman parte del sistema mismo. La mayoría de las implementaciones de Smalltalk tienden a exponer el compilador Smalltalk al entorno de programación, permitiendo que dentro del sistema se compile código fuente (textual), transformándose en objetos métodos, que son comúnmente instancias de la clase CompiledMethod. El sistema generalmente incorpora estos métodos en las clases, almacenándolos en el diccionario de métodos de la clase a la cual se quiera agregar el comportamiento que realiza el método. Esto, así como la incorporación de nuevas clases al sistema, es realizado dentro del sistema mismo; aunque la mayor parte de las implementaciones poseen herramientas visuales que ocultan la complejidad de interactuar con la clase que usualmente se encarga de tales tareas, el ClassBuilder.

La reflexión computacional de Smalltalk-80 se manifiesta en la posibilidad de observar el estado computacional del sistema. En los lenguajes derivados del Smalltalk-80 original, durante el envío de mensajes entre objetos, cada objeto receptor de un mensaje consulta su clase para tener acceso a los métodos que define. En caso de encontrarse el método en la clase, se dice que se "activa" el método. Esta activación de un método actualmente en ejecución, es accesible mediante una palabra clave llamada thisContext. Enviando mensajes a thisContext se puede consultar cuestiones tales como "¿quién me envió este mensaje?". Estas facilidades hacen posible implementar co-rutinas, continuaciones o back-tracking al estilo Prolog sin necesidad de modificar la máquina virtual. Uno de los usos más interesantes de esta facilidad, se da en el framework de web Seaside de Avi Bryant.

En Smalltalk todo es un objeto, y a un objeto se le envían mensajes. Ejemplo: 1 + 1
Significa que al objeto "1" le enviamos el mensaje "+" con el colaborador externo, otro objeto, "1". Este ejemplo entonces resulta en el objeto "2".

'¡Hola, mundo!' : En el típico Hola mundo, el objeto es Transcript, que recibe el mensaje show con el colaborador externo '¡Hola, Mundo!'.

Para crear una instancia de un objeto, se manda un mensaje new a una clase: ClaseDelObjeto new

Para obtener las vocales de una cadena de texto: 'Esto es un texto' select: [:aCharacter | aCharacter isVowel].

  1. Haz doble Click en el ejecutable: DolphinSmalltalk.exe
  2. Luego presiona Next
  3. Seleccionar la unidad en la que deseas guardar el programa y presiona Next (Siguiente)
  4. Una vez que se instalo ve al inicio/Dolphin Smalltalk 4.0/dolphin Smalltalk y haz click
  5. Y ahora en el Serial number pon: 6RHHXJ6-BE8RMEY-OM36NRB-8QOP
    Asegurate de poner todo con mayusculas sin espacio entre los guiones. Presiona Unlock, espera unos minutos y ya esta listo para empezar a trabajar con Smalltalk.
    Luego de instalar y registrar este producto te aparecera una ventana como esta.

Haciendo doble click en el WorkSpace o Area de Trabajo, la pantalla siguiente:

Ahora ya puedes probar editando los siguientes ejemplos y luego correrlos.Para entender la precedencia, escribe 3+4*5 35 luego presiona CTRL + D y obtendrás un resultado. Despues digita 3+(4*5) 23 y vuelve a presionar CTRL + D

El orden de precedencia es de izquierda a derecha, siendo el mensaje que esta mas a la izquierda el primero en ser evaluado. y sobre la procedencia indicada por el orden de izquierda a derecha se ubica la precedencia relativa de los tres tipos de mensajes:

Se puede alterar la precedencia de izquierda a derecha por la inserción de paréntesis. La expresión entre paréntesis tiene la más alta precedencia.

MENSAJES EN Smalltalk:
Para ejecutar:

PROGRAMANDO EN SMALLTALK

Veamos como agregar las clases nuevas de objeto a su imagen de Smalltalk y cómo programar su comportamiento agregando los métodos a ellos. Cuando haga esto, estará extendiendo las capacidades del sistema básico. Por esta razón, ahora debe guardar su imagen en una base regular (para evitar perder estos cambios) y al salir del ambiente de Dolphin.

Esto es lo que "programar" Smalltalk, está produciendo una imagen nueva con las clases y el comportamiento apropiados para hacer lo que usted quiere. Un "programa" de Smalltalk es una imagen con una red de objetos que interactúan.

JUEGO ANIMAL

RELOJ DIGITAL

Comenzar el funcionamiento del reloj. Copiar el Workspace. Seleccionar las siete líneas y presiona "CTRL.+E"
relojDigitalProcess := [[ "Aquí le asignamos una variable"
Processor sleep: 1000. "Aquí le decimos que interrumpa al procesador"
(DesktopView current canvas) "En esta línea le decimos que pinte"
font: (Font name: 'Arial' pointSize: 36) bold; "En esta linea le decimos que tipo de fuente va a utilizar"
text: Time now printString at: 30@10; "En esta linea le damos la ubicación el N° 30 es el left y el 10 es el top"
free
] repeat] fork. "repita lo del corchete y el fork es el creador de procesos"

Lo que está con azul son las palbras reservadas, y en verde los comentarios.

Luego de haber seleccionado y ejecutado, tendra que aparecer un reloj así:

Cuando desees parar el reloj Copiar en el Workspace(donde ejecutaste los otros ejemplos anteriormente). Selecciona la línea y presiona "CTRL.+E"

relojDigitalProcess terminate. UserLibrary default invalidate: nil lpRect: nil bErase: true.

"En esta parte terminamos el proceso y borramos la pantalla pintada"
Puedes probar ejecutando hasta invalidate y le pones un punto y el resto lo borras y lo ejecutas con CTRL+D y veras que el reloj se detiene pero no se borra la pantalla.
Para borrar la pantalla debes ejecutar toda la línea.

Ventana en Smalltalk
Para ejecutar se coloca el cursor en la línea donde está la operación y se presiona es una pequeña demostración de un paint "CTRL.+E"
scribble := Scribble show.

PARADIGMA
La ignorancia niega o agrede o critica
La ciencia duda..!!
Wilucha

Paradigmas
de Vida
Linguístico
Sistémico
Matemático
Volver

PARADIGMA
Es más valioso quién se levanta
que quién nunca cayó..
Wilucha

Apuntes de clasesLenguaje Apuntes de clasesGramática Apuntes de clasesAutómata Apuntes de clasesLaplace Apuntes de clasesSeries Apuntes de clasesEcuación Apuntes de clasesOperador

PARADIGMA
Cultivo una rosa blanca
..en julio, como en enero
para el amigo sincero
que me da su mano franca..!!

Y para el cruel que me arranca
el corazón con que vivo,
cardo ni ortiga cultivo;
..cultivo una rosa blanca..!
José Martí

Sofy Carpio Amor Yo..!! Sano Pity..!! Asado Cayo..!! Alegria Wilin..!! Extasis Volver a Inicio
Volver

Te espero en: wilucha@gmail.com

Esta page está en: www.wilocarpio.com.ar

24/09/2002

Volver al principio