informe smalltalk

Click here to load reader

Download Informe Smalltalk

Post on 28-Oct-2015

66 views

Category:

Documents

9 download

Embed Size (px)

TRANSCRIPT

  • 75.24 Teora de la Programacin

    75.31 Teora de Lenguajes

    Smalltalk

    Integrantes:

    Ignacio Bayetto

    Francisco Di Salvo

    Ignacio De Zan

  • Smalltalk

    Pgina 2

    Contenido 1 . Historia ..................................................................................................................................4

    2 . Arquitectura...........................................................................................................................7

    2.1 . Imagen ...........................................................................................................................7

    2.2 . Mquina Virtual .............................................................................................................7

    3 . Caractersticas......................................................................................................................9

    3.1 . Mensajes ......................................................................................................................12

    3.1.1 . UNARIOS (UNARY MESSAGE) ......................................................................12

    3.1.2 . BINARIOS (BINARY MESSAGE) ......................................................................12

    3.1.3 . PALABRA CLAVE (KEYWORD MESSAGE) ...................................................13

    3.2 . Herencia y Polimorfismo ............................................................................................14

    3.2.1 Conceptos bsicos ................................................................................................14

    3.2.2 Jerarqua de clases en Smalltalk .........................................................................15

    3.2.3 Herencia de mtodos ............................................................................................15

    3.2.4 Herencia de variables ...........................................................................................17

    3.2.5 Clases abstractas ..................................................................................................18

    3.2.6 Polimorfismo ...........................................................................................................20

    3.3 . Clases y Metaclases ..................................................................................................21

    3.3.1 Problema Huevo o la Gallina? ...........................................................................21

    3.3.2. Reglas para clases y metaclases .......................................................................21

    3.3.3. Regla 6: Toda clase es instancia de una metaclase .......................................22

    3.3.4. Regla 7: La jerarqua de metaclases tiene la misma estructura que la

    jerarqua de clases ..........................................................................................................22

    3.3.5 Regla 10: La metaclase de Metaclass es instancia de Metaclass ..................23

    3.3.6 Resumen .................................................................................................................24

    3.4 . Reflexin ......................................................................................................................25

    3.4.1 Ejemplos .................................................................................................................25

    4. Estructuras de control .........................................................................................................28

    4.1 Selectivas/Alternativas: ...............................................................................................28

    4.2 Iteracin/Repeticin .....................................................................................................28

    5. Manejo de excepciones......................................................................................................31

    5.1. Qu hacer con las excepciones? ............................................................................31

    5.2. Jerarqua de excepciones ...........................................................................................32

    5.3. Excepciones propias ...................................................................................................32

  • Smalltalk

    Pgina 3

    6. Concurrencia .......................................................................................................................34

    6.1 Process...........................................................................................................................34

    6. 2 Semaphore ...................................................................................................................34

    6.3 ProcessorScheduler .....................................................................................................35

    6.4 Ejemplo concurrencia ...................................................................................................35

    7 Manejo de memoria .............................................................................................................37

    7.1 Object Memory ..............................................................................................................37

    7.2 Almacenamiento Heap .................................................................................................37

    7.3 Compactacin ................................................................................................................38

    7.4 La tabla de objetos .......................................................................................................38

    7.5 Object Pointer ................................................................................................................38

    8. Recoleccin de basura .......................................................................................................39

    9. Implementaciones ...............................................................................................................40

    10. Bibliografa .........................................................................................................................40

  • Smalltalk

    Pgina 4

    1 . Historia

    La palabra Smalltalk es usualmente utilizada para indicar el lenguaje de

    programacin Smalltalk-80, la primera versin disponible pblicamente y

    creada en 1980.

    Smalltalk fue el producto de una investigacin liderada por Alan Key en Xerox

    Palo Alto Research Center (PARC). Alan Key dise las primeras versiones

    de Smalltalk las cuales fueron implementadas por Dan Ingalls. La primera

    versin, conocida como Smalltalk-71, fue creada por Ingalls en una apuesta por

    lograr que un lenguaje de programacin basado en el pasaje de mensajes,

    inspirado en Simula, pudiera ocupar slo una pgina de cdigo. Una versin

    posterior y ahora conocida como Smalltalk-72 fue utilizada para investigacin e

    influenciada por el desarrollo del modelo de actores (Actor Model). Su sintaxis

    y modelo de ejecucin cambiaron mucho en las posteriores versiones de

    Smalltalk.

    Luego de significativas revisiones, las cuales congelaron algunos aspectos de

    la ejecucin semntica para ganar performance (adoptando un modelo de

    ejecucin de clases y herencia parecido al de Simula), se cre Smalltalk-76.

    Este sistema tena un ambiente de desarrollo que ofreca la mayora de las

    herramientas de desarrollo que hoy conocemos (incluyendo una biblioteca de

    clases de navegador de cdigo / editor). Luego en 1980, Smalltalk-80 agreg

    las metaclases para ayudar a mantener el paradigma de todo es un objeto

    (excepto por las variables de instancia privada) asociando propiedades y

    comportamiento con clases individuales, e incluso primitivas tal como un

    integer y los valores booleanos (por ejemplo, para soportar diferentes formas

    de crear instancias).

    Smalltalk-80 fue la primer variante del lenguaje desarrollada fuera de PARC,

    primero como Smalltalk-80 versin 1 otorgada a un pequeo nmero de firmas

    (Hewlett-Packard, Apple Computer, Tektronix y DEC) y a universidades (UC

    Berkeley) para revisin por pares e implementacin de sus plataformas.

    Luego, en 1983, una implementacin pblica conocida como Smalltalk-80

    Version 2, fue lanzada como una imagen (archivo -plataforma independiente

    con definicin de objetos) y una especificacin de la mquina virtual. ANSI

    Smalltalk ha sido la referencia estndar del lenguaje desde 1998.

    Dos de las ms populares implementaciones de Smalltalk son descendientes

    de la imagen original de Smalltalk-80. Squeak es una implementacin open

    source basada en Smalltalk-80 Version 1 a travs de Apple Smalltalk.

    VisualWorks es otra implementacin basada en Smalltalk-80 versin 2 a travs

    de Smalltalk-80 2.5 y ObjectWorks (ambos productos de ParcPlace Systemas,

    una compaa derivada de Xerox PARC para lanzar Smalltak al mercado).

  • Smalltalk

    Pgina 5

    Cabe destacar que en 2002 Vassili Bykov implement Hobbes, una mquina

    virtual la cual corre Smalltalk-80 dentro de VisualWorks (Dan Ingalls utiliz

    Hobbes para Squeak).

    Durante los 80 hasta los 90, los ambientes de desarrollo de Smalltalk fueron

    vendidos por dos compaas: ParcPlace Systems y Digitalk, ambas situadas en

    California. ParcPlace Systems se focaliz en el mercado Unix/Sun

    Microsystems mientras que Digitalk se focaliz en el de las computadoras que

    corran Microsoft Windows o IBM OS. Am