Rupattelu

Rupattelu
Ensimmäisen version päivämäärä Kehitys alkoi vuonna 1969 , julkisesti saatavilla vuonna 1980
Paradigmat Esine
Kirjoittaja Alan Kay , Dan Ingals , Ted Kaehler, Adele Goldberg
Kehittäjät Xerox PARC
Viimeinen versio ANSI Smalltalk
Kirjoittaminen dynaaminen
Vaikuttanut Lisp , Simula
Vaikuttanut Objective-C , Self , Oak , Java , Dylan , AppleScript , NewtonScript , Python , Ruby , Scala , Perl 6 , Scratch
Toteutukset Squeak , GNU Smalltalk , VisualWorks , Pharo
Käyttöjärjestelmä Monitasoinen

Smalltalk on olio-orientoitu , heijastava ja dynaamisesti kirjoitettu ohjelmointikieli . Se oli yksi ensimmäisistä ohjelmointikielistä, jolla olitäysin graafinen integroitu kehitysympäristö . Se perustettiin vuonna 1972 . Se on saanut inspiraationsa lisp- ja simula- kielistä. Sen on suunnitellut Alan Kay , Dan Ingals , Ted Kaehler , Adele Goldberg klo Palo Alton tutkimuskeskuksessa osoitteessa Xerox . Kieli virallistettiin nimellä Smalltalk-80 ja sitä on sittemmin käyttänyt suuri joukko ihmisiä. Smalltalk on edelleen aktiivisesti kehitetty.

Smalltalkilla oli suuri vaikutus monien ohjelmointikielien kehitykseen, mukaan lukien: Objective-C , Actor  (in) , Java ja Ruby .

Monet 1990-luvun ohjelmistotekniikan innovaatiot tulivat Smalltalk-ohjelmointiyhteisöstä, kuten suunnittelumallit (sovellettu ohjelmistoihin), äärimmäinen ohjelmointi (XP) ja uudelleenrakentaminen . Ward Cunningham , keksijä wiki käsite , on myös Smalltalk ohjelmoija.

Historiallinen

Smalltalk-versioita on paljon, kuten usein tapahtuu ohjelmointikielissä. Ilman muita adjektiiveja sanaa Smalltalk käytetään usein viittaamaan Smalltalk-80: een, joka on ensimmäinen versio, joka julkaistiin yleisölle vuonna 1980.

Smalltalk on tuote joukko tutkijoita johtama Alan Kay on Xeroxin Palo Alton tutkimuskeskuksessa (PARC)  ; Alan Kay suunnitteli Smalltalkin ensimmäiset versiot, jotka toteutti Dan Ingalls . Ensimmäinen versio, nimeltään Smalltalk-71, luotiin muutaman aamuisin vedonlyönnissä, että Simulan innoittama viestien lähettämiseen perustuva ohjelmointikieli voidaan toteuttaa "koodisivulla".

Käsitteet

Smalltalkin pääkäsitteet ovat:

Kuvaus

Smalltalk toteuttaa tärkeimpien peruskohteiden ( luokka , esine , perintö , polymorfismi ), alkuperäisten käsitteiden ( metaluokka ) lisäksi ja esittelee pysyvän objektin käsitteen, poikkeuskäsittelyn ja malli-näkymä-ohjain- periaatteen .

Yllättävä piirre Smalltalk on täydellinen puuttuminen integroituun ohjeita kieli: if​- then​- else​, for​, while​jne. Kaikki nämä ohjeet toteutetaan objektien avulla. Esimerkiksi päätökset tehdään lähettämällä viesti ifTrue​Boolen objektille ja välittämällä koodinpätkä, joka suoritetaan, jos Boolean arvo on totta. Ainoa oletusarvoisesti sisäänrakennettu näkökohta on syntaksi viestin lähettämiselle objektille.

Seuraava esimerkki kuvaa Smalltalk-ohjelmointityyliä. Tämän koodin suorittaminen löytää vokaalit merkkijonosta. Muuttujat ilmoitetaan kahden pystysuoran palkin välissä | ... |, :​ilmoitetaan parametrit:

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

Viimeisellä rivillä merkkijono aString​vastaanottaa viestinä select:​koodilohkon argumenttina. Tässä on työn suorittavan superluokan koodi Collection​:

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

Tämä koodi vastaa viestiin iteroimalla jäsentensä kautta (tämä on menetelmä do:​) arvioimalla aBlock​kunkin merkin koodi ; aBlock​( aCharacter isVowel​) arvioituna luo loogisen arvon, joka sitten lähetetään ifTrue:​. Jos totuusarvo on tosi, merkki lisätään palautettavaan merkkijonoon. Kuten select​abstraktissa luokassa on määritelty Collection​, voimme käyttää sitä myös tällä tavalla:

| 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].

Liitteet

Aiheeseen liittyvät artikkelit

Ulkoiset linkit

Oppaat

Bibliografia

  • Clavel Gilles, objektien ohjelmointi Smalltalkilla ( ISBN  978-2-225-85157-5 )
  • Briffaut X. ja Sabah G. , Smalltalk: olio-ohjelmointi ja sovelluskehitys ,
  • Erard PJ ja Déguénon P., Simulaatio erillisillä tapahtumilla, Käsite ja toteutukset Simulassa, Ada ja Smalltalk, PPUR, coll. IT, Lausanne, 1996
  • Goldberg, Adele (joulukuu 1983). Smalltalk-80: Interaktiivinen ohjelmointiympäristö . Addison-Wesley. ( ISBN  0-201-11372-4 ) .
  • Goldberg, Adele; Robson, David (toukokuu 1983). Smalltalk-80: Kieli ja sen toteutus . Addison-Wesley. ( ISBN  0-201-11371-6 ) .

Huomautuksia ja viitteitä

  1. (in) '  implementations of Smalltalk  " , The World of Smalltalk (katsottu 24. huhtikuuta 2013 ) .