el lenguaje smalltalk - frlp.utn.edu.ar .sintaxis de smalltalk la sintaxis de smalltalk es: objeto

Download EL LENGUAJE SMALLTALK - frlp.utn.edu.ar .SINTAXIS DE SMALLTALK La sintaxis de SMALLTALK es: objeto

Post on 01-Oct-2018

217 views

Category:

Documents

1 download

Embed Size (px)

TRANSCRIPT

  • PROGRAMACIN ORIENTADA A OBJETOS

    EL LENGUAJE SMALLTALK

    GIPSI

  • POO - GIPSI -

    TEMAS:

    Introduccin a Smalltalk Smalltalk: Conceptos bsicos

    Clase Instancia Mensaje Herencia

    Sintaxis del lenguaje Expresiones Literales

    tipos Variables

    tipos asignaciones pseudovariables

    Mensajes tipos evaluacin de las expresiones de mensajes mensajes en cascada polimorfismo

    Mtodos y expresiones de retorno tipos estructura de cada tipo

    Estructura de control: Seleccin o Alternativa tipos Mensajes de comparacin a objetos

    Bloques Estructura de control: Repeticin o Iteracin

    tipos

  • POO - GIPSI -

    rbol genealgico de los lenguajes OO

  • POO - GIPSI -

    Introduccin a SMALLTALK

    1. SMALLTALK es un lenguaje orientado a objetos puro, pues todas las

    entidades que maneja son objetos. El lenguaje se basa en conceptos

    tales como objetos y mensajes.

    2. SMALLTALK es descendiente del lenguaje SIMULA y tiene sus

    orgenes en el Centro de Estudios de Palo Alto de Xerox, en los

    comienzos de 1970. Su desarrollo se basa en gran parte en las ideas de

    Alan Kay. Las tres versiones principales del lenguaje son

    SMALLTALK-72, SMALLTALK-76 y SMALLTALK-80.

    3. SMALLTALK es mucho ms que un lenguaje de programacin, es un

    ambiente completo de desarrollo de programas. ste integra de una

    manera consistente caractersticas tales como un editor, un compilador,

    un debugger, utilitarios de impresin, un sistema de ventanas y un

    manejador de cdigo fuente.

    4. SMALLTALK elimina la frontera entre aplicacin y sistema operativo,

    modelando todos los elementos como objetos.

  • POO - GIPSI -

    La programacin en SMALLTALK requiere de al

    menos los siguientes conocimientos:

    1. los conceptos fundamentales del lenguaje: manejo de clases y objetos,

    mensajes, clases y herencia.

    2. la sintaxis y la semntica del lenguaje.

    3. cmo interactuar con el ambiente de programacin de SMALLTALK

    para construir nuevas aplicaciones SMALLTALK.

    4. las clases fundamentales del sistema, tales como numricas,

    colecciones, grficas y las clases de interfase del usuario.

    Disear nuevas aplicaciones SMALLTALK, requiere de

    conocimientos sobre las clases existentes en el sistema

    SMALLTALK. Frecuentemente la programacin en

    SMALLTALK se denomina

    "Programacin por extensin"

    Las nuevas aplicaciones son construidas por extensin de

    las libreras de clases de SMALLTALK.

  • POO - GIPSI -

    SMALLTALK: CONCEPTOS BSICOS

    Los conceptos bsicos son:

    - Clase

    - Instancia

    - Mensaje

    - Herencia

    La programacin en SMALLTALK

    consiste en:

    - Crear clases.

    - Crear instancias.

    - Especificar la secuencia de

    mensajes entre objetos.

  • POO - GIPSI -

    CLASE

    Es una coleccin de objetos que poseen caractersticas y operaciones

    comunes.

    Una clase contiene toda la informacin necesaria para crear nuevos objetos

    y permite agrupar bajo un mismo nombre las variables y los mtodos que

    manipulan esas variables.

    Las variables de la clase son accedidas por los mtodos m1, m2, m3, ... mn.

    MTODO

    Es el procedimiento local a una clase. Su activacin permite el acceso a

    las variables de la clase.

    Variables de la clase

    Mt Mt Mt ... Mt m1 m2 m3 ... mn

  • POO - GIPSI -

    INSTANCIA DE CLASES

    A partir de una clase se pueden crear tantos elementos como se deseen.

    A estos elementos creados se los denomina Instancias u Objetos de la

    clase.

    Por lo tanto dos instancias diferentes de una misma clase comparten los

    mismos mtodos y la misma lista de variables con valores diferentes.

    Clase Libro

    Instancia I1 Instancia I2

    ttulo autores editorial aoEdicin idioma isbntema prestado

    mtodo mtodo mtodoverTtulo prestar devolver

    [...] [...] [...]

    ttulo=POOautores=Timothy Buddeditorial= Addison-Wesley IberoamericanaaoEdicin=1991idioma=espaolisbn=0-201-60103-6tema=POOprestado=true

    verTitulo, prestar,devolver

    ttulo=Inside Smalltalk- Vol. Iautores=Lalonde-Pugheditorial= Prentice-HallInternationalaoEdicin=1990idioma=inglsisbn=0-13-438430-3tema=POOprestado=false

    verTitulo, prestar,devolver

  • POO - GIPSI -

    MENSAJES

    Es una peticin a un objeto para que brinde algn servicio que el objeto

    puede realizar.

    El mensaje especifica que operacin se debe llevar a cabo, pero no

    cmo realizarla.

    El objeto al que se enva el mensaje se denomina RECEPTOR del

    mensaje.

    El texto del envo de un mensaje est compuesto de:

    el nombre del objeto destinatario denominado RECEPTOR

    DEL MENSAJE.

    un SELECTOR, que es el nombre del mtodo (punto de entrada

    en el objeto receptor).

    y eventualmente, PARMETROS del mtodo que se quiere

    activar, denominados ARGUMENTOS DEL MENSAJE.

    Instancia I2

    Texto del envo del mensaje: I2 prestar

    selector receptor

    Variables

    Mtodo prestar

    prestarValor

  • POO - GIPSI -

    HERENCIA

    Permite crear nuevas clases partiendo de otras previamente definidas

    con caractersticas semejantes a la que se quiere crear.

    El mecanismo de herencia nos permite definir las propiedades

    particulares de un nuevo objeto y heredar las propiedades comunes ya

    existentes.

    Herencia en la definicin de la clase Cn

    Clase C1

    Hijo de C1

    Clase Cn

    Hijo de Cn-1

    Variables de C1

    Mtodos de C1

    Variables de C2

    Mtodos de C2

    Variables de Cn

    Mtodos de Cn

    Variables de C1 +Variables de C2 +

    +Variables de Cn

    Mtodos de C1 +Mtodos de C2 +

    +Mtodos de Cn

  • POO - GIPSI -

    En SMALLTALK, todas las clases heredan de unanica clase llamada Object.

    Representacin ascendente (Bottom-up) parcial de las clases

    provistas por el Smalltalk

    SMALLTALK maneja slo HERENCIA SIMPLE.

    Object

    Magnitude Collection

    Number Time

    FloatInteger

    Date

    Fraction

    Bag Set

    . . .

    . . .. . .

  • POO - GIPSI -

    La herencia se hace sobre las clases y NO sobre las instancias.

    Una instancia de una clase maneja el conjunto de variables y mtodosdisponibles en dicha clase.

    Clase Textos

    Instanciacin

    ttulo idioma tema nroIdentif

    verTitulo darDeAlta darDeBaja

    editorial directorvolumen nmero

    mes aoverIndice

    autores editorialprestado isbn

    aoEdicinprestar devolver

    verAutor

    autoresnombreRevista

    perteneceA

    ttulo=POOautores=Timothy Buddeditorial= Addison-Wesley IberoamericanaaoEdicin=1991idioma=espaolisbn=0-201-60103-6nroIdentif=194785tema=POOprestado=true

    verTitulo, prestar,devolver, verAutor,darDeAlta, darDeBaja

    Clase Libro Clase Revistas Clase Artculos

  • POO - GIPSI -

    ACTIVACIN DE MTODOS

    Cuando una instancia recibe un mensaje, el selector del mensaje podr o no

    corresponder con un mtodo local a la clase de la instancia.

    1. Si el selector corresponde a un mtodo local de la clase del objeto,

    entonces hay activacin de ese mtodo.

    2. Si el selector no corresponde a un mtodo local a la clase del objeto,

    entonces se busca el mtodo en la superclase de la clase del objeto y as

    recursivamente hasta encontrar la primera clase del rbol de herencia que

    posea un mtodo idntico al selector del mensaje.

    Como vemos la investigacin se hace de abajo a arriba.

    Clase C1 Herencia

    Clase C2 Herencia

    bsqueda del mtodo m1 en la clase C1.

    Instanciacin

    bsqueda del mtodo m1 en la clase C2. Instancia de C2

    mensaje m1 (selector)

    Object

    VariablesMtodo m1Mtodo m2

    Variables

    Mtodo m3

  • POO - GIPSI -

    SINTAXIS DE SMALLTALK

    La sintaxis de SMALLTALK es:

    objeto mensaje

    Por ejemplo

    3 factorial

    significa que el mensaje factorial es enviado al objeto 3 (instancia de la clase

    Integer) y por lo tanto se ejecutar el mtodo de nombre factorial

    que se encuentra en la clase Integer o en sus superclases.

    HOLA size

    #(4 8 6 3) at: 2

    $A asciiValue

  • POO - GIPSI -

    EXPRESIN

    Smalltalk es un lenguaje basado en expresiones. Una

    expresin es una secuencia de caracteres que puede ser

    evaluada.

    Hay cuatro tipos de expresiones:

    1. Literales

    2. Nombres de Variables

    3. Expresiones de mensajes

    4. Expresiones de bloque

    La interfase de usuario permite la seleccin y evaluacin de estas

    expresiones.

  • POO - GIPSI -

    TIPOS DE EXPRESIONES

    1- LITERALES (constantes literales u objetos constantes)

    El valor de una expresin literal es siempre el mismo

    objeto.

    Hay cinco tipos de constantes literales:

    1. Nmeros

    2. Caracteres

    3. Secuencia de caracteres

    4. Smbolos

    5. Arreglos

    NMEROS

    Descripcin: Los nmeros son objetos que representan valores

    numricos y responden a mensajes que calculan

    resultados matemticos.

    Representacin: Secuencia de dgitos precedidos o no de un signo '-' y/o

    con un punto decimal.

    Ejemplos: 25 27.5 -35.7 -128

    Notacin cientfica: 25.53e2 -8.126e-3.

  • POO - GIPSI -

    CARACTERES

    Descripcin: Los