Wiki Linkat

Categoria:Entorn Smalltalk

De Wiki Linkat

Smalltalk és un llenguatge de programació tipat dinàmicament amb una sintaxi molt simple i uniforme que permet aprendre'l molt ràpidament. Va ser creat a principis dels 80, i, és àmpliament utilitzat tant en el món acadèmic com en el laboral.

Smalltalk s’executa sobre una màquina virtual. El desenvolupament té lloc dins d’una imatge, en la que viuen i poden ser modificats tots els objectes, als que se'ls hi poden assignar funcions concretes i que es comporten d'una determinada manera. Tots els elements, inclosos els números, es treballen com objectes, els quals posseeixen unes característiques comunes:

  • Tenen una memòria pròpia.
  • Posseeixen la capacitat de comunicar-se amb altres objectes.
  • Posseeixen la capacitat d'heretar característiques d'objectes antecessors.
  • Tenen capacitat de processament.

Smalltalk té moltes implementacions com poden ser l'Squeak, GNU, Scratch, Cincom (utilitzada en l'àmbit comercial), Sophie, Aida, Botsinc,...

La majoria de les implementacions proporcionen un entorn integrat que permet explorar el codi font i interaccionar amb objectes. Aquest entorn disposa de moltes eines, totes implementades en Smalltalk:

  • Explorador de classes i mètodes.
  • Eines de refactoring.
  • Inspectors d’objectes.
  • Un depurador.
  • Administrador i controlador de versions.



Contingut

Anem a conèixer la sintaxi d’Smalltalk

Paraules reservades:

  • nil: objecte no definit (valor per defecte)
  • true i false: objectes booleans
  • self: objecte receptor del missatge
  • super: objecte receptor del missatge (dins un context de super classe)
  • thisContext: pila d’execució del mètode actual

Caràcters reservats:

  • := (o ←): assignació
  • ˆ (o ↑): retorna un resultat des d’un mètode
  • | var1 var2 var3 |: declaració de tres variables temporals
  • $a: caràcter a
  • #(abc 123): taula (array) que conté dos literals el símbol #abc i el nombre 123
  • . (punt): fi d’expressió
  • ; (punt i coma): missatges en cascada
  • [ ]: bloc de codi (és un objecte !)
  • "comentari"
  • ’cadena’

Enviament de missatges

Els objectes es comuniquen entre si mitjançant l'enviament d'un missatge. Un missatge s'envia entre un objecte emissor i un receptor, l'objecte emissor demana una operació que l'objecte receptor pot proporcionar. Un objecte pot proveir moltes operacions.

Les definicions d'aquestes operacions en els objectes són cridades mètodes. Un mètode especifica la reacció d'un objecte quan rep un missatge que és dirigit a aquest mètode. La resolució (en el sentit de lligat) d'un missatge a un mètode és dinàmica.

El missatge està basat en el llenguatge natural, amb subjecte, verb i complements. Hi ha tres tipus de missatges: unari, binari i paraula clau.

  • Un missatge unari no té arguments:

array := Array new. array size.

El primer exemple crea i retorna una nova instància de la classe Array, enviant el missatge new. El segon exemple demana la mida d’aquesta taula (array), i retorna 0.

  • Un missatge binari pren només un argument, el nom és un símbol i s’utilitza sovint per a expressions aritmètiques:

3 + 4. ’Hola’, ’ Món’.

El missatge + és enviat a l’objecte 3 amb 4 de paràmetre. En el segon cas, el missatge , és enviat a la cadena ’Hola’ amb ’ Món’ de paràmetre.

  • Un missatge de paraula clau pot prendre un o més arguments. Els arguments s’insereixen entre cada paraula clau, després dels dos punts:

’Smalltalk’ allButFirst: 5. 3 to: 10 by: 2.

El primer exemple crida el mètode allButFirst: sobre una cadena de caràcters i amb argument 5. El mètode retorna la cadena de caràcters ’talk’. El segon exemple retorna una col·lecció contenint els elements 3, 5, 7 i 9.

Bloc

Els blocs són objectes que contenen codi que no és executat immediatament. Són la base d’estructures de control com els condicionals o les repeticions. Els blocs poden ser utilitzats per associar comportaments.


#(’Hola’ ’ Món’) do: [:string | Transcript show: string].

L’exemple envia el missatge do: a una taula de cadenes de caràcters amb un bloc com a paràmetre. El bloc és avaluat un cop per cada element de la taula. El paràmetre del bloc, string, conté cada element de la taula, un darrera l’altre. Com a resultat de tota l’expressió, les cadenes de caràcters ’Hola’ i després ’ Món’ es mostren al Transcript.



Adreces d'interès:

Principis de disseny amb l'Smalltalk
http://www.smalltalking.net/Papers/stDesign/stDesign.htm
Traducció al castellà del llibre Powerful Idees in the Classroom
http://swiki.agro.uba.ar/small_land/uploads/193/Libro_Completo.pdf
Manual d'introducció
http://swiki.agro.uba.ar/small_land/27

Pàgines a la categoria «Entorn Smalltalk»

Les següents 3 pàgines són dins d'aquesta categoria, d'un total de 3.

S