PPR-U3-2-Smalltalk Parte 1
PPR-U3-2-Smalltalk Parte 1
PROGRAMACION
Unidad III
Paradigma de Programación con Orientación a
Objetos
Lenguaje Smalltalk - Parte I
CONTENIDOS ABORDADOS
Lenguaje Smalltalk:
Introducción.
Características.
Aspectos.
Entorno.
Sintaxis y semántica.
Introducción a Smalltalk
Es un lenguaje orientado a objetos puro, todas las entidades que
maneja son objetos.
La programación consiste en:
Crear clases.
Crear instancias.
Especificar la secuencia de mensajes entre objetos.
3
Introducción a Smalltalk
Características
Es un lenguaje altamente interactivo
Se implementa como intérprete.
Posee un ambiente completo de desarrollo de programas. Integra de una manera
consistente:
• Editor, compilador, debugger, utilitarios de impresión, sistema de ventanas,
manejador de código fuente.
Aplicaciones
Usado en las universidades, porque implementa el paradigma de objetos puro.
Usado en aplicaciones comerciales. Por ejemplo:
En proceso de transacciones con tarjetas de crédito
En la supervisión de mercados internacionales de valores
4
Aspectos importantes de Smalltalk
Asignación dinámica de memoria
Solo se dispone de objetos, que son manipulados a través de
apuntadores/referencias.
Todas las referencias tienen un tamaño fijo constante y se le asigna espacio en la
pila (stack).
Los objetos referenciados se almacenan en otro sector de la memoria, llamado heap
(montículo), que no está sujeto al protocolo de asignación de la pila.
Asignación de referencias
Una asignación a una referencia, cambia el valor de la referencia por el valor
contenido en otra referencia.
si tenemos dos variables no solo tendrán el mismo valor sino que referencian al
mismo objeto. R e f e r e n c ia O b je t o
Por ejemplo, x := y.
5
Aspectos importantes de Smalltalk
Asignación dinámica de tipos
Las variables no se declaran con tipos específicos
Posee asignación dinámica de tipos, donde cada
valor debe llevar consigo una identificación que
permite conocer la naturaleza exacta del valor, esta | identificadorVariable |
identificación queda ligada al valor a través de la identificadorVariable := 10.
asignación. identificadorVariable := ‘Hola’.
A un identificador se le pueden pasar valores de tipos
diferentes.
Objetos polimórficos
Al ser un lenguaje con asignación dinámica todos los objetos son potencialmente
polimórficos.
Cualquier objeto puede tener valores de cualquier tipo.
6
Entorno de Smalltalk: Pharo
Las ventanas que utilizaremos del entorno Pharo son:
Browser:
Permite inspeccionar y
Editar la biblioteca de clases del ambiente.
Playground:
Contiene un editor de texto.
Se utiliza para evaluar expresiones.
Transcript:
Es un editor de texto utilizado para evaluar expresiones.
El propio entorno también la utiliza para mostrar las salidas de los mensajes.
Inspect it:
Permiten observar la estructura interna de un objeto y
Modificar el valor de las mismas.
Sintaxis y Semántica
Comentarios
Por ejemplo:
“Esto es un comentario”
“Esto es un comentario
en varias líneas”
8
Sintaxis y Semántica
Operador de asignación (:=)
Por ejemplo: u n N u m er o : = 2 2 .
u nN u m ero
22 O b jet o
I n te g e r
unNumero := 22.
u nN u m e ro
unNumero := ‘Juan’.u n N u m e r o := ‘J u a n ’ . 22 Q u e d a s in
re f e r e n c i a
O b je t o
Juan
S t ri n g 9
Sintaxis y Semántica
Expresión
10
Sintaxis y Semántica
Literales (constantes literales u objetos constantes)
Ejemplos:
10 número 10.
$a carácter a.
'hola‘ string con las letras h, o, l y a.
#Alumno símbolo (string constante)
#(1 2 3) arreglo de tres elementos enteros
11
Sintaxis y Semántica
Variables
Las variables pueden hacer referencia a un objeto determinado en
un instante de tiempo y, momentos después, a otro objeto
completamente diferente.
u n O b je t o O b je t o
u n O b je t o : = 2 2 . 22
In t e g e r
u n O b je t o Q u e d a s in
u n O b je t o : = ‘J u a n ’. 22
r e f e r e n c ia
O b je t o
Juan
S t r in g
13
Sintaxis y Semántica
Operaciones Aritméticas
Una expresión que realiza una operación aritmética en Smalltalk tiene la siguiente
forma:
número operación número
Ejemplos :
3 + 4. "devuelve 7"
9 // 4. "devuelve 2"
9 \\ 4. "devuelve 1"
14
Sintaxis y Semántica
Comparaciones Lógicas
Una expresión de comparación tiene el siguiente formato:
valor comparación valor
Las comparaciones lógicas devuelven un valor que puede ser true (verdadero)
o false (falso), que son instancias de las clases True y False, respectivamente.
> "mayor que" < "menor que"
= "igual en valor" ~= "desigual en valor"
>= "mayor o igual que" <= "menor o igual que"
== "el mismo objeto que"
Ejemplos:
3 > 8 "devuelve false"
$e <= $f "devuelve true"
15
Sintaxis y Semántica
Comparaciones Lógicas
"y" Lógico y "o" Lógico: El mensaje binario para el y lógico es &, y para el o
lógico es |. Por ejemplo:
(a > 0) & (b < 0) "Devuelve true si a es positivo y b es negativo. Caso
contrario devuelve false."
(a > 0) | (b < 0) "Devuelve true si a es positivo y/o b es negativo. Caso
contrario devuelve false."
not : El mensaje unario not provee la función not. Este mensaje invierte un valor
booleano (true se vuelve false, o false se vuelve true). El formato es:
booleano not . Ejemplo:
(5 > 1) not "El valor de retorno es false."
16
Sintaxis y Semántica
símbolo Significado
. Finalización de expresiones.
Definición de métodos:
patrónDelMensaje: colaboradorExterno1
<nombreArgumento: colaboradorext2>
“comentario”
|variablesTemporales|
expresiones.
^ retorno
Sintaxis y Semántica
Para la creación de un objeto o instancia:
unObjeto := Object new.
unAlumno := Alumno new.
unAlumno := Alumno new initialize.
unAlumno nota:10. Envía un objeto numero (10) al objeto alumno, a través del
método nota:, el cual asigna el valor en el atributo nota.
n := unAlumno nota. Retorna un objeto numérico que representa la nota del objeto
alumno (atributo nota) a través del método nota y se asigna a
un objeto numero llamado n.
20