Movatterモバイル変換


[0]ホーム

URL:


Hopp til innhold
Wikipedia
Søk

Smalltalk

Fra Wikipedia, den frie encyklopedi
Smalltalk
Tilblivelse1972
ParadigmeMulti-paradigme:Objektorientert programmering, klassebasert programmering
Designet avAlan Kay,Adele Goldberg,PARC
Utviklet avAlan Kay,Adele Goldberg,Daniel Henry Holmes Ingalls,Diana Merry
Siste versjon(er)ANSI Smalltalk
Typetildeling dynamisk, sterk
Filendelse(r).st
Påvirket av
Lisp,Simula 67,Simula,Logo

Smalltalk er etobjektorientert,dynamisk typet,reflektivtprogrammeringsspråk avAlan Kay,Dan Ingalls,Ted Kaehler,Adele Goldberg m.fl. fraXerox PARC fra 70-tallet. Språket er hovedsakelig inspirert avSketchpad ogSimula, men også fraLISP når det gjelder å tilby et integrert utviklingsmiljø, samt i det at det i hovedsak er skrevet i seg selv og dermed er lett utvid- og modifiserbart. Den mest kjente Smalltalk-utgaven er Smalltalk-80 som «dalte ned fra elfenbenstårnet» i august 1981-utgaven av datamagasinetByte; en ANSI-standard for Smalltalk ble godkjent i 1998.[1]

Historikk

[rediger |rediger kilde]

Smalltalk-71, Smalltalk-72,Smalltalk-76

Smalltalk i Norge

[rediger |rediger kilde]

Trygve Reenskaug, Senter for Industriforskning (SI)Model-view-controller (MVC)

CSCs norskutviklede, globale produkt forreassuranse,SICS/nt, er skrevet i Smalltalk (IBM VisualAge for Smalltalk). Ifølge IBM er SICS/nt det største produktet i verden skrevet i Smalltalk.

GeoKnowledges RRV programvare, GeoX, er skrevet i Smalltalk.

Semantikk og syntaks

[rediger |rediger kilde]

Smalltalks semantikk kan (siden Smalltalk-80) kort oppsummeres ved atalt er objekter. Enhver entitet man arbeider med er et objekt som er en instans av en klasse. (Dette gjelder også klassene selv, som er instanser av spesialiserte underklasser av klassenClass.) Det finnes ikke noe klart skille mellom program og utviklingsmiljø; typisk er verktøyene man utvikler i også representert ved objekter som bor i samme verden som objektene man selv definerer og lager.

Som hovedregel fungerervariabler som referanser til objekter heller enn til stykker av minnet; unntak gjelder for grunnleggende objekter som hel- eller flyttall, booleske størrelser og karakterer. Smalltalk har automatisk søppelsamling: når det ikke lenger finnes noen referanse til et objekt, vil minnet det opptok bli frigjort.

All interaksjon mellom objekter foregår via sending avmeldinger. Når et objekt mottar en melding, finner det frem til denmetoden som implementerer hvordan det skal reagere på meldingen, utfører det metoden angir, og returnerer et objekt som svar.

Smalltalks syntaks er meget enkel. Hver melding kan ha én av tre former (fet skrift og kursiv er kun brukt for å tydeliggjøre delene av en melding):

objektmelding

Meldingenmelding sendes til objektetobjekt. Et eksempel kan væremainWindowclose.

objektoperatormeldingargument

Meldingenoperatormelding sendes til objektetobjekt. Denne syntaksen brukes først og fremst for regneoperasjoner og lignende – kun visse tegn kan brukes i en slik melding. Et eksempel er2+3, som sender meldingen+ til objektet (heltallet)2 med argumentet3. Klassen som2 er en instans av implementerer en metode+ som returnerer summen av mottakeren og argumentet.

objektmelding:argumentobjektmeldingDel1:argumentdel2:argument2objektmeldingDel1:argumentdel2:argument2del3:argument3   osv.

Dette er måten man normalt sender en melding med ett eller flere argumenter. I det siste tilfellet mottar f.eks. objektetobjekt meldingenmeldingDel1:del2:del3: med tre argumenter. "Hello World"-eksemplet nedenfor viser en slik melding med ett argument; et eksempel med tre argumenter kan være

accountprocessInvoice:inv1vatPolicy:self foodPolicylogTo:logFile.

Prioritering av meldinger er rent syntaksbasert, og følger rekkefølgen meldingsformene er angitt i ovenfor. Innen hver meldingsform er prioriteten alltid fra venstre mot høyre – dette kan virke forvirrende på dem som er vant til andre språk, siden det f.eks. impliserer at2+3*5 evaluerer til 25, ikke 17.

Smalltalk har kun fem reserverte ord. Disse erself (referanse til objektet selv),super (referanse til objektet selv som om det var en instans av sin umiddelbare overklasse),true (boolesk sannhet, referanse til den eneste instansen av klassenTrue),false (boolesk falskhet, referanse til den eneste instansen av klassenFalse) ognil ("ingen verdi", referanse til den eneste instansen av klassenUndefinedObject).

Hello World eksempel

[rediger |rediger kilde]
   Transcript show: 'Hello, world!'.

Meldingen "show" sendes til klassen "Transcript" med teksten "Hello, world!" som argument. Aktivering av "show"-metoden fører så til at teksten blir vist i transcript/konsoll-vinduet. (PS Du må ha systemvinduet "Transcript" åpent for å se resultatet av eksekvering av dette eksemplet.)

Smalltalk-varianter

[rediger |rediger kilde]

Smalltalk/V

VisualAge Smalltalk fra IBM

VisualWorks fra Cincom Systems.

Squeak

Dolphin Smalltalk (for Windows), fra Object Arts

Referanser

[rediger |rediger kilde]
  1. ^ANSI INCITS 319-1998 (R2007)Arkivert 22. februar 2014 hosWayback Machine. "Information Technology - Programming Languages - Smalltalk", approved on May 19, 1998
A# ·ActionScript ·Ada ·Alef ·ALGOL ·ALGOL 58 ·ALGOL 60 ·ALGOL 68 ·ALTRAN ·APL ·AppleScript ·Argus ·Assembler ·Autokode ·awk ·B ·BASIC ·BCPL ·BETA ·BitC ·BLISS ·Bourne Shell ·C ·C++ ·C-- ·CHILL ·C# ·C shell ·Caml ·Ch ·Cilk · Cilk++ ·Cilk Plus ·Clarion ·Clipper ·CLISP ·Clojure ·CLU ·COBOL ·COMAL ·Common Lisp ·Concurrent C ·Concurrent Euclid ·Concurrent Pascal ·C shell ·D ·Delphi ·Dylan ·ECMAScript ·Eiffel ·Emacs Lisp ·Erlang ·Euclid ·F* ·F# ·Forth ·Fortran ·GNU Common Lisp ·GNU Pascal ·Go ·Haskell ·HyperTalk ·Incr Tcl ·INTERCAL ·Interlisp ·Java ·JavaScript ·JRuby ·LaTeX ·Legoscript ·LilyPond ·Limbo ·Lisp ·LPC ·Lua ·Lynx ·Mary ·MATLAB ·Mesa ·ML ·MML ·Modula ·Modula-2 ·Modula-2+ ·MUMPS ·Objective-C ·Objective-C++ ·OCaml ·OpenVera ·O'Haskell ·Pascal ·Perl ·PHP ·Pike ·PL/I ·Plankalkül ·PLEX ·Prolog ·Protel ·Pure Data ·Python ·R ·Ratfor ·REXX ·RTL/2 ·Ruby ·Rust ·SAS ·Scala ·Scheme ·Scratch ·Simula ·SML ·Smalltalk ·SNOBOL ·Tcsh ·Tcl ·TECO ·TOM ·Turbo Basic ·Turbo Pascal ·Verilog ·Visual Prolog ·Turing ·TypeScript ·Vala ·VHDL ·Visual Basic
Oppslagsverk/autoritetsdata
Hentet fra «https://no.wikipedia.org/w/index.php?title=Smalltalk&oldid=22957550»
Kategori:
Skjult kategori:

[8]ページ先頭

©2009-2025 Movatter.jp