Smalltalk
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:
- Una Màquina virtual
- Un archiu cridat «image», que conté a tots els objectes del sistema.
- Un llenguage de programació (també conegut com Smalltalk).
- Una enorme biblioteca de «objectes reusables».
- I generalment, un entorn de desenroll que ademés pot funcionar com un sistema en temps d'eixecució.
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]- «Smalltalk-80» Goldberg, A.; Robson, D. (1983). Smalltalk-80: the language and its implementation. Addison-Wesley Longman Publishing Co., Inc.
- «A Little Smalltalk». Budd, T. (1987). A little Smalltalk. Addison-Wesley.
- «Discovering Smalltalk» LaLonde, W. (1994). Discovering Smalltalk. Benjamin-Cummings Publishing.
- «The Art and Science of Smalltalk» Lewis, S. (1995). The art and science of Smalltalk. Prentice Hall.
- «Smalltalk Best Practice Patterns» Beck, K. (1997). Smalltalk Best Practice Patterns. Prentice Hall, Englewood Cliffs, NJ.
- «Kent Beck's Guide to Better Smalltalk» Beck, K. (1999). Kent Beck's guide to better Smalltalk: a sorted collection. Cambridge University Press.
- «Advanced Smalltalk». Pletzke, J. (1997). Advanced Smalltalk. Wiley Computer Publishing. John Wiley & Sons.
- «The Design Patterns Smalltalk Companion» Alpert, S. R.; Brown, K.; Woolf, B. (1998). The design patterns Smalltalk companion. Addison-Wesley Longman Publishing.
- «ANSI NCITS 319-1998». ANSI (1998). American National Standard for Information Technology - Programming Languages - Smalltalk. American National Standards Institute, Inc.
- «Smalltalk, Objects, and Design» Liu, C. (2000). Smalltalk, objects, and design. iUniverse.
- «Smalltalk With Style» Klimas, I. J.; Skublics, S.; Thomas, D. A. (2002). Smalltalk with style. Prentice-Hall, Inc.
- «Llibre de programació en Smalltalk» de Diego Gómez Deck (en Espanyol) (2006).
- «Mentoring Course Smalltalk» d'Andrés Valloud (2008).
- «#ing Smalltalk Practice» d'Andrés Valloud (2008).
- «Fundamentals Smalltalk Programming Techniques» d'Andrés Valloud (2009).
Referències
[editar | editar còdic]
- Este artícul conté una traducció derivada de «Smalltalk» de Wikipedia en castellà publicada baix la Llicència de documentació lliure de GNU i la Llicència Creative Commons Reconeiximent-CompartirIgual 4.0 Internacional.