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.
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".
Smalltalkin pääkäsitteet ovat:
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, whilejne. Kaikki nämä ohjeet toteutetaan objektien avulla. Esimerkiksi päätökset tehdään lähettämällä viesti ifTrueBoolen 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 aStringvastaanottaa 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]]. ^newCollectionTämä koodi vastaa viestiin iteroimalla jäsentensä kautta (tämä on menetelmä do:) arvioimalla aBlockkunkin 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 selectabstraktissa 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].