Anar al contingut

Smalltalk

De L'Enciclopèdia, la wikipedia en valencià
Per a atres usos d'este terme vore Small talk (desambiguación).


Smalltalk és un llenguage reflexiu de programació, orientat a objectes i en tipado dinàmic. Per les seues característiques, Smalltalk pot ser considerat també com un entorn d'objectes, a on inclús el propi sistema és un objecte. Metafòricament, es pot considerar que un Smalltalk és un món virtual a on viuen objectes que es comuniquen entre sí, per mig del envie de mensages.

Un sistema Smalltalk està compost per:

Smalltalk va obtindre el segon lloc per a «llenguage de programació més volgut» en les enquestes per a desenrolladors de Stack Overflow en 2017.[1]

Història

[editar | editar còdic]

Els orígens de Smalltalk es troben en les investigacions realisades per Alan Kay, Donen Ingalls, Ted Kaehler, Adele Goldberg i uns atres durant els anys setanta en el Pal Alt Research Center de Xerox (conegut com Xerox PARC), per a la creació d'un sistema informàtic orientat a l'educació. L'objectiu era crear un sistema que permetera expandir la creativitat dels seus usuaris, proporcionant un entorn per a l'experimentació, creació i investigació.

Terminologia

[editar | editar còdic]

Un programa Smalltalk consistix en objectes que s'envien mensages. En Smalltalk, tot objecte és instància d'una classe, i la classe és també un objecte. Tant un número entero (per eixemple el 4) com les operacions matemàtiques (com la suma de sancers) són objectes. Cada objecte representa un concepte, ya siga concret de la realitat (per eixemple una persona), o de certa forma abstracte (per eixemple, un servidor web).

Els objectes en Smalltalk presenten característiques comunes:

  • Tenen colaboradors (referències a atres objectes, per mig de variables o índexs).
  • Reben mensages, la qual cosa implica eixecutar un método, i tornar un objecte com a resposta. Un mensage té selector (que és el seu nom), i pot tindre o no paràmetros.
  • Durant l'eixecució d'un mensage, l'objecte pot enviar mensages (ya siga a sí mateix o a atres objectes).

Les classes tenen les següents característiques:

  • Tenen un nom, en format Camel Case
  • Declaren noms de variables, que cada instància podrà llegir i escriure des dels seus métodos, i que li servixen per a mantindre una referència a atres objectes (els seus colaboradors).
  • Tota classe té un conjunt de métodos, també cridats el protocol d'eixa classe. Un método definix l'eixecució per a respondre a un mensage.
  • Tota classe té superclase, de la qual hereta métodos i variables, i agrega els propis. En el cas d'agregar un método en un selector de mensage que ya existia en el seu superclase, este últim serà l'eixecutat al moment de rebre el mensage en eixe selector.
  • Es denomina method lookup al mecanisme que determina qué método correspon eixecutar per a un selector rebut per un objecte. Eixe método lookup es realisa al moment de rebre el mensage, la qual cosa es diu clapix binding.
  • En cas de no existir un método per a respondre al mensage rebut, s'eixecutarà el método doesNotUnderstand:.

Els objectes són creats com a instàncies de classes durant l'eixecució d'un programa i són agranats automàticament quan atres objectes de memòria no els referencian pel recolector de fem (Garbage Collector).

Bibliografia

[editar | editar còdic]

Referències

[editar | editar còdic]