Smalltalk programovací jazyk
Smalltalk je dynamicky napsaný namítat orientovaný programovací jazyk navržený u Oxeroxovat PARC Alan Kay, Dan Ingalls, Ted Kaehler, Adele Goldbergová, a jiní během sedmdesátých lét. Jazyk byl obecně uvolněn jako Smalltalk-80 a byl široce použitý protože.
V zášti jeho 20-historie roku, to je široce věřil tomu celkový programovací zážitek a výkonnost Smalltalk je ještě nepřekonaná jinými vývojovými prostředími. Smalltalk je v pokračujícím aktivním vývoji, a sbíral loajální společenství uživatelů kolem toho.
Smalltalk byl měl velký vliv na vývoj mnoha jiných programovacích jazyků, včetně: Cíl-C, herec, Java a Rubínový. Mnoho softwarových rozvojových myšlenek na devadesátá léta přišlo z Smalltalk komunity, takový jako Vzory designu (jak platil o softwaru), Extrémní programování a Refactoring. Mezi Smalltalkers je Ward Cunningham, vynálezce WikiWiki pojetí.
Smalltalk velké myšlenky obsahují:
- “Všechno je objekt.” řetězce, celá čísla, booleans, prvotřídní definice, bloky kódu, kupit rámce, paměť jsou všichni reprezentovaní jako objekty.
- Všechno je dostupné pro modifikaci. Jestliže vy chcete se měnit Ide, vy můžete dělat to -- v vtokové soustavě, bez zastavení k recompile a restartu. Jestliže vy chcete pojem nové kontroly v jazyce, vy můžete přidat to. V některých implementacích, vy může změna vyrovnat syntax jazyka nebo cestu odvoz odpadu pracuje.
- Typy jsou dynamické -- toto znamená, že vy nemusíte definovat druhy v kódu, který dělá jazyk hodně výstižnější.
- Odvoz odpadu je vestavěn a neviditelný pro vývojáře.
- Smalltalk programy jsou obvykle kompilovány k bytecodes, běh virtuálním strojem.
- Dynamický překlad: moderní komerční virtuální stroje kompilují bytecodes k rodnému strojovému kódu pro rychlé provádění, technika propagovala Smalltalk-80 od ParcPlace systémů v střední-osmdesátá léta. Tento nápad byl adoptován Javou asi deset roků pozdnější a pojmenovaný “jen-v-kompilace času”, nebo JIT.
| aString samohlásky | aString: = ' toto je řetězec '. samohlásky: = aString výběrový: [: aCharacter | aCharacter isVowel].V poslední řadě, řetězec je poslán výběrový: zpráva s kódovým blokovým pokračováním jako argument. Here's kód ve sbírce superclass, která vyrábí zboží:
| newCollection | newCollection: = self druh nový. self dělat: [: každý |
(aBlock hodnota: každý) ifTrue: [newCollection dodají: každý ]].^ newCollection To reaguje na zprávu tím, že opakuje přes jeho členy (toto je dělat: metoda) hodnotit aBlock kód jakmile pro každou postavu; aBlock (aCharacter isVowel) když ocenil vytvoří booleovský, který je pak poslán ifTrue:. Jestliže booleovský je pravdivý, charakter je přidán k řetězci být vrácen. Protože výběrový je definován ve sbírce abstraktní třídy, my můžeme také používat to jako toto:
| aPoint obdélníků | obdélníky: = OrderedCollection
s: (obdélník odešel: 0 pravý: 10 vrcholu: 100 dolní části: 200) s: (obdélník odešel: 10 pravý: 10 vrcholu: 110 dolní části: 210).aPoint: = bod x: 20 y: 20. kolize: = obdélníky vyberou: [: aRect | aRect containsPoint: aPoint].
| Tabulka s obsahem |
| 1 vnější spojení |
- “proč Smalltalk?” společenství Smalltalk vývojářů.
- “GoodStart Smalltalk info” Smalltalk místo advokacie.
Implementace
- VisualWorks, vidět Cincom Smalltalk internetové stránky, Wiki.
- IBM' s VisualAge pro Smalltalk, vidět http://www-4.ibm.com/software/ad/smalltalk/
- Dolphin Smalltalk, vidět http://www.object-arts.com/Home. htm
- Smalltalk/X, vidět http://www.exept.de/sites/exept/english/Smalltalk/frame_uebersicht. html
- Kvičet, vidět http://www.squeak.org/
- Přivlastnit si Smalltalk které útoky na Palm pilota, vidět http://www.pocketsmalltalk.com/
- Gnu Smalltalk, vidět http://www.gnu.org/software/smalltalk/smalltalk. html
- Smalltalk MT, vidět http://www.objectconnect.com/
- VisualWorks a kvičet jsou potomci originálu Smalltalk-80.Tady je snímek obrazovky Smalltalk-80 běh uvnitř VisualWorks (to je, virtuální stroj, který funguje Smalltalk-80 je sám Smalltalk programový běh v VisualWorks).
Konzultace
- Volné Smalltalk knihy
- Tam být WikiWiki splnil v kvičet Smalltalk (swiki) a VisualWorks (WikiWorks). Vy můžete stáhnout Swiki od http://minnow.cc.gatech.edu/swiki WikiWorks je zahrnut v VisualWorks distribuci (dostupný zdarma pro non-komerční použití, vidět souvislost nahoře).