Smalltalk

Infos
Smalltalk est un des premiers langages de programmation objet intégrés à une interface graphique. Il a été créé en 1972. Il est inspiré par Lisp et Simula. Il a été conçu par Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg au Palo Alto Research Center de Xerox. Le langage a été formalisé en tant que Smalltalk-80 et est depuis utilisé par un grand nombre de personnes. Smalltalk est toujours activement développé et dispose d'une base loyale d'utilisateurs. Smal
Smalltalk

Smalltalk est un des premiers langages de programmation objet intégrés à une interface graphique. Il a été créé en 1972. Il est inspiré par Lisp et Simula. Il a été conçu par Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg au Palo Alto Research Center de Xerox. Le langage a été formalisé en tant que Smalltalk-80 et est depuis utilisé par un grand nombre de personnes. Smalltalk est toujours activement développé et dispose d'une base loyale d'utilisateurs. Smalltalk a été d'une grande influence dans le développement de nombreux langages de programmation, dont : Objective-C, Actor, Java et Ruby. Un grand nombre des innovations de l'ingénierie logicielle des années 1990 viennent de la communauté des programmeurs Smalltalk, tels que les Design Patterns (appliqués au logiciel), l'Extreme Programming (XP) et le refactoring. Ward Cunningham, l'inventeur du concept du Wiki, est également un programmeur Smalltalk.

Concepts

Les principaux concepts de Smalltalk sont :
- « Tout est objet. » Les chaînes de caractères, les entiers, les booléens, les définitions de classes, les blocs de code, les piles et la mémoire sont représentés en tant qu'objets.
- Tout est modifiable. Si vous voulez changer l'IDE, vous pouvez le faire -- en cours d'utilisation, sans recompiler et redémarrer l'application. Si vous voulez une nouvelle instruction de contrôle dans le langage, vous pouvez l'ajouter. Avec certaines implémentations, vous pouvez même changer la syntaxe du langage, ou la façon dont le ramasse-miette fonctionne.
- Les types sont dynamiques -- pas besoin de définir des types dans votre code, ce qui permet au langage d'etre concis.
- Un ramasse-miettes mémoire est intégré et transparent pour le développeur.
- Un système de gestion d'exceptions avec reprise est fourni.
- Les programmes Smalltalk sont généralement compilés en bytecode, exécutés par une machine virtuelle.
- La Translation Dynamique : les machines virtuelles commerciales modernes compilent le bytecode vers le code machine natif de façon à obtenir de meilleures performances, une technique dont Smalltalk-80 a été le pionnier, développé par ParcPlace Systems au milieu des années 1980. Cette idée a été adoptée par le langage de programmation Java quelques dix ans après et renommé « compilation just-in-time », ou JIT.
- Une classe peut hériter d'une seule autre classe (héritage simple).

Description

Smalltalk implémente, en plus des principes objets de bases (classe, objet, héritage, polymorphisme), des concepts originaux (métaclasse) et introduit la notion d'objet persistant, de traitement des exceptions et le principe Modèle-Vue-Contrôleur. Une caractéristique surprenante de Smalltalk est l'absence totale d'instructions de contrôles intégrées au langage : if-then-else, for, while, etc. Toutes ces instructions sont implémentées en utilisant des objets. Par exemple, les décisions sont prises en envoyant un message ifTrue à un objet Booléen, et en passant un fragment de code à exécuter si le Booléen est vrai. Le seul aspect intégré par défaut est la syntaxe pour envoyer un message à un objet. L'exemple suivant (un code permettant de trouver les voyelles dans une chaîne) illustre le style de programmation Smalltalk. (le | déclare les variables, : déclare les paramètres, et dites-vous pour le moment que sont des accolades ): | aString vowels | aString := 'This is a string'. vowels := aString select: . À la dernière ligne, la chaîne aString reçoit un message select: avec un bloc de code en argument. Voici le code de la super-classe Collection qui fait le travail: | newCollection | newCollection := self species new. self do: . ==
Sujets connexes
Alan Kay   Années 1980   Bytecode   Compilation à la volée   Environnement de développement intégré   Java (langage)   Langage de programmation   Lisp   Machine virtuelle   Modèle-Vue-Contrôleur   Objective C   Objet   Programmation orientée objet   Ramasse-miettes   Ruby   Simula   Squeak   Système de gestion d'exceptions   VisualWorks   Ward Cunningham   Wiki   Xerox  
#
Accident de Beaune   Amélie Mauresmo   Anisocytose   C3H6O   CA Paris   Carole Richert   Catherinettes   Chaleur massique   Championnat de Tunisie de football D2   Classement mondial des entreprises leader par secteur   Col du Bonhomme (Vosges)   De viris illustribus (Lhomond)   Dolcett   EGP  
^