Smalltalk

Smalltalk
Logo.

Date de première version Développement démarré en 1969, disponible publiquement en 1980
Paradigmes Objet
Auteur Alan Kay, Dan Ingals, Ted Kaehler, Adele Goldberg
Développeurs Xerox PARC
Dernière version ANSI Smalltalk ()[1]Voir et modifier les données sur Wikidata
Typage dynamique
Influencé par Lisp, Simula
A influencé Objective-C, Self, Oak, Java, Dylan, AppleScript, NewtonScript, Python, Ruby, Scala, Perl 6, Scratch
Implémentations Squeak, GNU Smalltalk, VisualWorks, Pharo
Système d'exploitation Multiplate-forme
Extension de fichier stVoir et modifier les données sur Wikidata

Smalltalk est un langage de programmation orienté objet, réflexif et dynamiquement typé. Il fut l'un des premiers langages de programmation à disposer d'un environnement de développement intégré complètement graphique. Il a été créé en 1972. Il est inspiré par les langages 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é.

Smalltalk a été d'une grande influence dans le développement de nombreux langages de programmation, dont : Objective-C, Actor (en), 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.

Historique

Il existe un grand nombre de variantes de Smalltalk, comme c'est souvent le cas avec les langages de programmation[2]. Sans autre qualificatif, le mot Smalltalk est souvent utilisé pour désigner Smalltalk-80, la première version à avoir été rendue publique en 1980.

Smalltalk est le produit d'un groupe de chercheurs conduit par Alan Kay au Palo Alto Research Center (PARC) de Xerox ; Alan Kay a conçu les premières versions de Smalltalk qui ont été implémentées par Dan Ingalls. La première version, nommée Smalltalk-71, a été créée en quelques matinées sur le pari qu'un langage de programmation basé sur l'idée d'envoi de messages inspirée de Simula pouvait être réalisé en « une page de code ».

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. Le langage permet par exemple de changer d'IDE en cours d'utilisation, sans recompiler ni redémarrer l'application. De même, il est possible de créer de nouvelles instructions de contrôle dans le langage. Certaines implémentations permettent de changer la syntaxe du langage, ou la façon dont le ramasse-miettes fonctionne ;
  • Le typage est dynamique, donnant ainsi une certaine concision au langage ;
  • 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 compilation est faite à la volée : 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 quelque dix ans après et renommée « 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 principaux objets de base (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ôle 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 illustre le style de programmation Smalltalk. L'exécution de ce code permet de trouver les voyelles dans une chaîne. Les variables sont déclarées entre deux barres verticales |...|, : déclare les paramètres :

| aString vowels |
aString := 'This is a string'.
vowels := aString select: [:aCharacter | aCharacter isVowel].

À 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 :

Collection>>select: aBlock
| newCollection |
newCollection := self species new.
self do: [:each | 
    (aBlock value: each) 
        ifTrue: [newCollection add: each]].
^newCollection

Ce code répond au message en itérant au travers de ses membres (c'est la méthode do:) en évaluant le code aBlock à chaque caractère ; aBlock (aCharacter isVowel) une fois évalué crée un booléen, qui est alors envoyé à ifTrue:. Si le booléen est vrai, alors le caractère est ajouté à la chaîne qui sera retourné. Comme select est défini dans la classe abstraite Collection, on pourrait également l'utiliser de cette façon :

| rectangles aPoint|
rectangles := OrderedCollection 
  with: (Rectangle left: 0 right: 10 top: 100 bottom: 200)
  with: (Rectangle left: 10 right: 10 top: 110 bottom: 210).
aPoint := Point x: 20 y: 20.
collisions := rectangles select: [:aRect | aRect containsPoint: aPoint].

Annexes

Sur les autres projets Wikimedia :

Articles connexes

Liens externes

Didacticiels

Bibliographie

  • Clavel Gilles, Programmer objets avec Smalltalk (ISBN 978-2-225-85157-5)
  • Briffaut X. et Sabah G., Smalltalk : Programmation orientée objet et développement d'applications,
  • Erard P.J. et Déguénon P., Simulation par événements discrets, Concept et réalisations en Simula, Ada et Smalltalk, PPUR, coll. Informatique, Lausanne, 1996
  • Goldberg, Adele (December 1983). Smalltalk-80: The Interactive Programming Environment. Addison-Wesley. (ISBN 0-201-11372-4).
  • Goldberg, Adele; Robson, David (May 1983). Smalltalk-80: The Language and its Implementation. Addison-Wesley. (ISBN 0-201-11371-6).

Notes et références

  1. a et b « https://wiki.squeak.org/squeak/172 »
  2. (en) « Implémentations de Smalltalk », The World of Smalltalk (consulté le ).


Read other articles:

Untuk kegunaan lain, lihat Bintang yang Bersinar. Bintang yang BersinarAlbum studio karya DriveDirilisJanuari 2010DirekamDesember 2009GenrePop Rock, rock alternatifDurasi47:05LabelE-Motion EntertainmentKronologi Drive Kita untuk Selamanya(2008)Kita untuk Selamanya2008 Bintang yang Bersinar(2010) Cahaya Terang(2011)Cahaya Terang2011 Singel dalam album Bintang yang Bersinar Akulah Dia Katakanlah Bintang yang Bersinar (gaya penulisan: Bintang yang B3rsinar, dengan angka 3 sebagai huruf E pad...

 

Japans herrlandslag i ishockeyIIHF:s rankning21 (2014)Coach Mark MahonGuld-Silver-Brons-OS-meriterGuld-Silver-Brons-Canada/World Cup-meriterGuld-Brons- Japans herrlandslag i ishockey representerar Japan i ishockey för herrar. Första matchen spelades den 24 januari 1930 i Prag, och förlorades med 2-13 mot det dåvarande Tjeckoslovakien [1]. Då orten Nagano i Japan arrangerade Olympiska vinterspelen 1998 deltog Japan i OS-ishockeyturneringen som direktkvalificerat hemmalag, och slutade på ...

 

2023 soundtrack album by Marcelo Zarvos and Oak FelderWhite Men Can't Jump (Original Soundtrack)Soundtrack album by Marcelo Zarvos and Oak FelderReleasedMay 19, 2023GenreFilm scorefilm soundtrackLength37:56LabelHollywoodProducerMarcelo ZarvosOak FelderMarcelo Zarvos chronology Big George Foreman(2023) White Men Can't Jump(2023) Flamin' Hot(2023) Oak Felder chronology House Party(2023) White Men Can't Jump(2023) White Men Can't Jump (Original Soundtrack) is the soundtrack to the 2023 ...

Artikel ini membutuhkan penyuntingan lebih lanjut mengenai tata bahasa, gaya penulisan, hubungan antarparagraf, nada penulisan, atau ejaan. Anda dapat membantu untuk menyuntingnya. Tony Herbiansyah Bupati Kolaka Timur Ke-1Masa jabatan17 Februari 2016 – 17 Februari 2021Penjabat: 22 April 2013 - 22 April 2015PresidenJoko WidodoGubernurNur AlamAli MaziWakilAndi Merya Pendahulujabatan baruPenggantiSamsul BahriWakil Bupati KendariMasa jabatan2003–2008PresidenMegawati Soekarnoputri...

 

Voce principale: 1. Fußball- und Sportverein Mainz 05. 1. Fußball- und Sportverein Mainz 05Stagione 2008-2009Sport calcio Squadra Magonza Allenatore Jørn Andersen All. in seconda Jürgen Kramny 2. Bundesliga2º posto Coppa di GermaniaSemifinale Maggiori presenzeCampionato: Karhan, Wache (34)Totale: Karhan, Wache (39) Miglior marcatoreCampionato: Bancé (14)Totale: Bancé (18) StadioStadion am Bruchweg Maggior numero di spettatori20 300 (7 partite) Minor numero di spettatori18...

 

Botanical gardens in West Lafayette, Indiana, U.S. Purdue University Horticulture GardensPurdue Horticulture Gardens, Fall 2010TypeBotanical gardenLocationPurdue UniversityNearest cityWest Lafayette, IndianaCoordinates40°25′26″N 86°54′54″W / 40.42389°N 86.91500°W / 40.42389; -86.91500Area0.5 acresCreated1982[1]Operated byPurdue UniversityOpenYear-roundDonations accepted Flowers blooming at the Horticulture Gardens spring 2005 The Purdue Un...

Brandon TransitParentCity of BrandonFoundedBrandon Municipal Rwy. (1913; 111 years ago (1913))Brandon Transit (1955; 69 years ago (1955))Headquarters900 Richmond Avenue E.LocaleBrandon, MBService areaUrban AreaService typebus service, paratransitRoutes10Hubs2Fleet23Annual ridership1,000,000[1]Fuel typeDieselWebsitebrandontransit.ca Brandon Transit is the municipally operated bus service in Brandon; the second largest city in the province of Manitoba...

 

History of plants Further information: Evolutionary history of life A late Silurian sporangium, artificially colored. Green: A spore tetrad. Blue: A spore bearing a trilete mark – the Y-shaped scar. The spores are about 30–35 μm across. The evolution of plants has resulted in a wide range of complexity, from the earliest algal mats of unicellular archaeplastids evolved through endosymbiosis, through multicellular marine and freshwater green algae, to spore-bearing terrestrial b...

 

Cantonment and Municipal Corporation in National Capital Territory of Delhi, India District Subdivision in Delhi, IndiaDelhi Cantonment Dillī ChāvanīDelhi CanttDistrict Subdivision SealMotto(s): Hamārā prayāsa bēhatara janajīvanaOur effort for a better lifeDelhi CantonmentLocation in Delhi, North IndiaCoordinates: 28°35′53″N 77°07′24″E / 28.598091°N 77.1234069°E / 28.598091; 77.1234069Country IndiaUnion territory DelhiDistrictNew Delh...

This article needs additional citations for verification. Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.Find sources: The 5ifth Column – news · newspapers · books · scholar · JSTOR (January 2019) (Learn how and when to remove this message) 2002 studio album by Acumen NationThe 5ifth ColumnStudio album by Acumen NationReleased14 May 2002 (2002-05-14)Genre...

 

John G. ThompsonLahir13 Oktober 1932 (umur 91)Ottawa, Kansas, Amerika SerikatKebangsaanAmerikaAlmamaterYale University (B.A. 1955)University of Chicago (Ph.D. 1959)PenghargaanPenghargaan Cole (1965)Medali Fields (1970)Anggota Royal Society (1979)Penghargaan Senior Berwick (1982)Medali Sylvester (1985)Penghargaan Wolf (1992)Penghargaan Poincaré (1992) Penghargaan Abel (2008)Karier ilmiahBidangTeori GrupInstitusiHarvard University (1961–62)University of Chicago (1962–68)University of...

 

Neighborhood of Los Angeles in California, United StatesLittle BangladeshNeighborhood of Los AngelesLittle Bangladesh neighborhood sign located at the intersection of New Hampshire and Third StreetLittle BangladeshLocation within Central Los AngelesCoordinates: 34°04′08″N 118°17′52″W / 34.0690°N 118.2979°W / 34.0690; -118.2979CountryUnited StatesStateCaliforniaCountyLos AngelesCityLos AngelesTime zoneUTC-8 (PST) • Summer (DST)UTC-7 (PDT) Little ...

Koç UniversityKoç ÜniversitesiLambang Universitas KoçJenisSwasta - Non-Profit[1]Didirikan1993[2]KetuaRahmi Koç[3]PresidenProf. Umran Inan[4]Wakil PresidenProf. M. İrşadi Aksun (Penelitian dan Pengembangan)[5] Prof. Barış Tan (Urusan Akademik)[6]PendiriVehbi Koç[7]Staf administrasi312Sarjana2935Magister600LokasiSarıyer, Istanbul,  Turki41°20′53″N 29°07′32″E / 41.34806°N 29.12556°E / 41.3...

 

1944 film by Charles Reisner Meet the PeopleDirected byCharles ReisnerScreenplay bySig HerzigFred SaidyVirginia Kellog (add'l contribs, uncredited)[1]Based onMeet the People1940 playby Sol and Ben Barzman and Louis Lant[1]Produced byE.Y. Harburg[1]StarringLucille BallDick PowellCinematographyRobert L. SurteesEdited byAlex TroffeyMusic byHarold Arlen, et al.ProductioncompanyMetro-Goldwyn-MayerDistributed byLoew's Inc.Release dates June 1, 1944 (1944-06-01...

 

Piala FA 1998–1999Negara Inggris WalesJuara bertahanArsenalJuaraManchester United(gelar ke-10)Tempat keduaNewcastle United← 1997–1998 1999–2000 → Piala FA 1998–1999 adalah edisi ke-118 dari penyelenggaraan Piala FA, turnamen tertua dalam sepak bola di Inggris. Edisi ini dimenangkan oleh Manchester United setelah mengalahkan Newcastle United pada pertandingan final dengan skor 2–0. Final Artikel utama: Final Piala FA 1999 Manchester United v Newcastle United 22 Mei 1999...

Cet article est une ébauche concernant la Rome antique et l’architecture ou l’urbanisme. Vous pouvez partager vos connaissances en l’améliorant (comment ?) selon les recommandations des projets correspondants. Pour les articles homonymes, voir Opus. Le dôme du Panthéon de Rome, vu de l'intérieur.L'opus caementicium (du latin caementum = moellon, pierre brute, agrégat), également appelé le béton romain, était utilisé dans la construction dans la Rome antique. C'était un...

 

У Вікіпедії є статті про інших людей із прізвищем Лисенко. Андрій Миколайович Лисенко Народження 4 листопада 1968(1968-11-04) (55 років)Донецьк, Донецька область, УкраїнаКраїна  УкраїнаРід військ ЗС УкраїниОсвіта Військовий інститут Київського національного університету іме...

 

Chronologies Données clés 1620 1621 1622  1623  1624 1625 1626Décennies :1590 1600 1610  1620  1630 1640 1650Siècles :XVe XVIe  XVIIe  XVIIIe XIXeMillénaires :-Ier Ier  IIe  IIIe Chronologies thématiques Art Architecture, Arts plastiques (Dessin, Gravure, Peinture et Sculpture), (), Littérature (), Musique (Classique) et Théâtre   Ingénierie (), Architecture, () et ()   Politique Droit et ()   Religion (,)  ...

Musical intervalminor sixthInversemajor thirdNameOther namesminor hexachord, hexachordon minus, lesser hexachordAbbreviationm6SizeSemitones8Interval class4Just interval8:5, 128:81, 11:7Cents12-Tone equal temperament800Just intonation814, 792, 782 Minor sixth Playⓘ Pythagorean minor sixth on C Playⓘ, four Pythagorean perfect fifths. In Western classical music, a minor sixth is a musical interval encompassing six staff positions (see Interval number for more details), and is one of two...

 

CDP in Texas, United StatesWells Branch, TexasCDPLocation of Wells Branch, TexasCoordinates: 30°26′38″N 97°40′42″W / 30.44389°N 97.67833°W / 30.44389; -97.67833CountryUnited StatesStateTexasCountyTravisArea • Total2.5 sq mi (6.6 km2) • Land2.5 sq mi (6.6 km2) • Water0.0 sq mi (0.0 km2)Elevation820 ft (250 m)Population (2020) • Total14,000 •...