Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
今日から使おうSmalltalk
Search
newapplesho
November 29, 2010
Programming
340
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
今日から使おうSmalltalk
第26回 Smalltalk勉強会資料
newapplesho
November 29, 2010
More Decks by newapplesho
See All by newapplesho
OpenRestyについて
newapplesho
0
130
Continuous Integration for Pharo Smalltalk Part 2 (Travis CI)
newapplesho
0
220
今時なウェブ開発をSmalltalkでやってみる?
newapplesho
0
200
Continuous Integration for Pharo Smalltalk
newapplesho
0
170
Elasticsearch for Pharo Smalltalk
newapplesho
0
170
SourceCode Management with Pharo Smalltalk - Pharo Smalltalkソースコード管理方法
newapplesho
0
160
RUNNING Smalltalk - 実践Smalltalk
newapplesho
0
140
AWS SDK for Smalltalk
newapplesho
0
140
How Smalltalker Works
newapplesho
0
120
Other Decks in Programming
See All in Programming
エージェンティックRAGにAWSで入門しよう!
har1101
9
1.9k
その問い、本当に正しいですか?AI時代のエンジニアに必要な哲学と認知科学 / ai-philosophy-cognitive-science
minodriven
14
6.8k
なぜ関数型プログラミングで「型」と「証明」が語られるのか #fp_matsuri
kajitack
3
770
霧の中の代数的エフェクト
funnyycat
1
320
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
250
Webフレームワークの ベンチマークについて
yusukebe
0
200
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
ローカルLLMでどこまでコードが書けるか -拡張版 / How much code can be written on a local LLM Extended
kishida
12
4.7k
Go1.27で導入されるジェネリクスメソッドでできること
mackee
0
270
Haskell/Servantを通してWebミドルウェアを捉え直す
pizzacat83
1
480
Observability in Practice:Grafana 與 Edge Device SRE 的那些事
blueswen
0
190
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
4.9k
Featured
See All Featured
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
260
Build The Right Thing And Hit Your Dates
maggiecrowley
39
3.2k
Marketing to machines
jonoalderson
1
5.6k
So, you think you're a good person
axbom
PRO
2
2.1k
The Limits of Empathy - UXLibs8
cassininazir
1
410
Facilitating Awesome Meetings
lara
57
7k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
630
Information Architects: The Missing Link in Design Systems
soysaucechin
0
1k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.5k
The Invisible Side of Design
smashingmag
301
52k
Automating Front-end Workflow
addyosmani
1370
210k
Why You Should Never Use an ORM
jnunemaker
PRO
61
9.9k
Transcript
ࠓ͔Β͓͏Smalltalk ୈ26ճ Smalltalkษڧձ ٢ాɹᠳ 1
ୈճ4NBMMUBMLษڧձ SmalltalkͷΠϯετʔϧ 4RVFBLKB "MMJOPOF ͕͓͢͢Ί .BD -JOVY 8JOEPXTશͯʹରԠ IUUQTXJLJTEEPKQVNFKBWB [JQϑΝΠϧΛղౚ͙ͯ͢͠ʹ͑Δ
͍ํڥฤΛࢀর 2
ୈճ4NBMMUBMLษڧձ Smalltalk͕͔Βͳ͍ จ๏ ։ൃڥ array := Array with:-1 with:1 with:100.
array inject: Float infinity negated into:[:v1 :v2 | v1 max: v2 ]. 3
ୈճ4NBMMUBMLษڧձ SmalltalkͷϓϩάϥϛϯάͷྲྀΕ Workspace,SytemBrowserΛىಈ ϓϩάϥϜΛهड़ ϓϩάϥϜ࣮ߦ ։ൃڥฤ จ๏ฤ ։ൃڥฤ 4
جຊจ๏ฤ ୈ26ճ Smalltalkษڧձ ٢ాɹᠳ 5
ୈճ4NBMMUBMLษڧձ ίϝϯτ μϒϧΫΦʔςʔγϣϯͰғΉ "0 notNil" μϒϧΫΦʔςʔγϣϯΛίϝϯτʹؚΊΔ߹ "͜ͷΑ͏ʹʮ""ʯճهड़͠·͢" 6
ୈճ4NBMMUBMLษڧձ จͷ۠Γͱೖ จͷ۠Γ ೖ BTTJHONFOU . := ϐϦΦυ ίϩϯɼΠίʔϧ ੲͷ4NBMMUBMLͷίʔυͰΞϯμʔόʔ
_ 7
ୈճ4NBMMUBMLษڧձ Ϧςϥϧʢࣈʣ 5. 1.414. -1. 122244567. 10e7. 2r100. "ਐ "
8r12. "ਐ" 16rFF. "ਐ" 8
ୈճ4NBMMUBMLษڧձ จࣈ จࣈྻ Ϧςϥϧʢจࣈͱจࣈྻʣ $a "จࣈͷલʹΛ͚·͢" $b $- 'Smalltalk' "γϯάϧΫΦʔςʔγϣϯͰғΉ"
"ʮ'ʯΛจࣈྻʹؚΊΔ߹ճଓ͚ͯॻ͘ " " จࣈྻ݁߹ʮ,ʯ " 9
ୈճ4NBMMUBMLษڧձ Ϧςϥϧ γϯϘϧ ྻ #apple. #pineapple. γεςϜʹ͔̍ͭ͠ଘࡏ͠ͳ͍จࣈྻ #($a 'smalltalk' 42.19).
#(#(1 2) 3). #(a b c) ===> #(#a #b #c) ཁૉͷΦϒδΣΫτ౷Ұ͠ͳ͍͍ͯ͘ 10
ୈճ4NBMMUBMLษڧձ ٖม true false nil self super thisContext ࣗΛද͢ ϝιουͷݕࡧͷࡍɼεʔύʔΫϥεͷͷΛද͢
࣮ࣗߦதͷίϯςΩετ(γεςϜͷ࣮ߦঢ়ଶ)Λද͢ 11
ୈճ4NBMMUBMLษڧձ ϝοηʔδࣜ 3 negated -3 ΦϒδΣΫτ ϝοηʔδ ΦϒδΣΫτʹϝοηʔδΛૹΔ SmalltalkͷϓϩάϥϜ ୯߲ϝοηʔδࣜ
߲ϝοηʔδࣜ Ωʔϫʔυϝοηʔδࣜ 12
ୈճ4NBMMUBMLษڧձ ୯߲ϝοηʔδ(Unary messages) 4 sqrt. "ฏํࠜ" 12 i. "ڏ" 1
asFloat. "ුಈখͱ͢Δ" #(1 2 3) first. "࠷ॳͷཁૉΛऔΓग़͢" ҾΛऔΒͳ͍ϝοηʔδ 13
ୈճ4NBMMUBMLษڧձ 2߲ϝοηʔδ(Binary Messages) 4 + 1. 10 / 2. 8
// 3. 1 < 2. 'Small','talk'. ه߸ c d !ΛΈ߹Θ໊ͤͨલΛ ͭϝοηʔδ ओʹֶͷ2߲ԋࢉࢠ(2ͭͷσʔλʹର͢Δԋࢉ)Λ දͨ͢Ίͷͷ 14
ୈճ4NBMMUBMLษڧձ Ωʔϫʔυϝοηʔδ(Keyword Messages) ̏൪ͷཁૉΛऔΓग़͢ #($z $y $x) at: 3. ͔ΒͷؒͷͳΒUSVFΛฦ͢
11 between: 10 and: 100. 11.between(10,100) ൪ͷཁૉΛIFMMPʹஔ͖͑Δ #($a $b $c) at: 2 put: 'hello'. 1 to: 10 by: 2 do:[:v | Transcript cr; show:v ]. ҾΛऔΔϝοηʔδͷ͏ͪ ɹ߲ϝοηʔδҎ֎ ϝοηʔδͷऴΘΓʹίϩϯ ͕ඞͣ͘ 15
ୈճ4NBMMUBMLษڧձ ϝοηʔδͷ༏ઌॱҐ ࢛ଇԋࢉͷ༏ઌॱҐ͕ͳ͍ɽ ༏ઌॱҐΛ͚ΔʹׅހΛ͚Δɽ ୯߲߲Ωʔϫʔυ جຊࠨ༏ઌॱ ୯߲ɼ߲̎ɼΩʔϫʔυϝοηʔδ͕ɼ ̍ͭͷจʹؚ·Ε͍ͯͨ߹ʹҎԼͷ༏ઌॱҐͰ࣮ߦ 16
ୈճ4NBMMUBMLษڧձ ϝοηʔδͷ༏ઌॱҐʢྫʣ جຊࠨ༏ઌ ୯߲߲Ωʔϫʔυ 3 + 4 sqrt (3 +
4) sqrt 1 2 2 1 17
ୈճ4NBMMUBMLษڧձ ࿅श 3 + 4 * 5. 3 + 4
sqrt. 50 + 4 sqrt between: 10 and: 100. ࣮ߦॱংͱ࣮ߦ݁ՌΛߟ͑·͠ΐ͏ 18
ୈճ4NBMMUBMLษڧձ ϒϩοΫ block := [:x :y | x + y].
block value: 1 value: 2. block valueWithArguments: #(3 4) ओʹ੍ޚߏʹ༻͍ΒΕΔ ҙͷ࣌Ͱ࣮ߦՄೳͳϓϩάϥϜͷݻ·Γ •function(x){x + 1}ͷΑ͏ͳͷ •(lambda (x) (+ x 1)) ࣮ߦ͢ΔࡍʹɼҾͷʹԠͯ͡ WBMVFɼWBMVFΛૹ৴͢Δ 19
ୈճ4NBMMUBMLษڧձ Χεέʔυ Transcript show: 'Hello '; cr; show:'Squeak'. Transcript show:
'Hello '. Transcript cr. Transcript show: 'Squeak'. ઌ಄ΦϒδΣΫτʹରͯ͠ϝοηʔδΛ࿈ଓతʹ ૹ৴͢Δࡍʹ༻͍Δ ; ηϛίϩϯΛ༻͍Δ 20
ୈճ4NBMMUBMLษڧձ Ϧλʔϯ ^ Λฦ͢ ΩϟϨοτ ^ 1 + 2. ^
true. 21
ୈճ4NBMMUBMLษڧձ ੍ޚจʢ݅ذʣ Float infinity > 0 ifTrue:[ Transcript show:'Yes!'. ]
ifFalse:[ Transcript show: ' NO... ' ]. 22
ୈճ4NBMMUBMLษڧձ ੍ޚจʢ܁Γฦ͠ʣ 1 to: 10 by: 2 do:[:v | Transcript
cr;show:v ]. | i | "Ұ࣌ม" i := 1. [i < 10] whileTrue:[:v | Transcript cr; show:v. i := i + 2. ]. for(int i=1; i<=10; i=i+2) int i=1; while(i<10;){ i=i+2; } 23
ୈճ4NBMMUBMLษڧձ ੍ޚจʢ܁Γฦ͠ʣ #(1 2 3) do:[:v | Transcript cr; show:v
]. 3 timesRepeat:[ Transcript show:‘Hello’]. 24
ୈճ4NBMMUBMLษڧձ SmalltalkͷϙΠϯτ ม໊ʹΞϯμʔόʔμϥʔ͑ͳ͍ ٖมʹೖͰ͖ͳ͍ ࢉज़ԋࢉͷ࣌༏ઌॱҐΛҙ͢Δ XIJMF5SVFϒϩοΫΦϒδΣΫτʹૹΔ ྻͷఴࣈ͔Β͡·Δ 25
։ൃڥฤ ୈ26ճ Smalltalkษڧձ ٢ాɹᠳ 26
ୈճ4NBMMUBMLษڧձ ϫʔϧυϝχϡʔʢWorld menuʣ എܠʢϫʔϧυʣΛΫϦοΫ ։͖ํ 27
ୈճ4NBMMUBMLษڧձ Smalltalkͷ։ൃڥ ϫʔΫεϖʔεʢ8PSLTQBDFʣ τϥϯεΫϦϓτʢ5SBOTDSJQUʣ γεςϜϒϥβʢ4ZTUFN#SPXTFSʣ ΠϯεϖΫλʢ*OTQFDUPSʣ ϝιουϑΝΠϯμʢ.FUIPE'JOEFSʣ σόοΨʢ%FCVHHFSʣ ֮͑ͯཉ͍͠πʔϧ 28
ୈճ4NBMMUBMLษڧձ ϫʔΫεϖʔεʢWorkspaceʣ ϓϩάϥϜΛهड़͢ΔͨΊͷΤσΟλ ։͖ํ ϫʔϧυϝχϡʔ 8PSMENFOV ͷ։͘ ։͘ϝχϡʔ ϫʔΫεϖʔε 8PSLTQBDF
29
ୈճ4NBMMUBMLษڧձ τϥϯεΫϦϓτʢTranscriptʣ ࣮ߦ݁ՌΛग़ྗ͢ΔͨΊͷΟϯυ ։͖ํ ϫʔϧυϝχϡʔ 8PSMENFOV ͷ։͘ ։͘ϝχϡʔ τϥϯεΫϦϓτ 5SBOTDSJQU
30
ୈճ4NBMMUBMLษڧձ ͍ͨͯͨ͘·Βͳ͍ਓͷͨΊʹ Hello SmalltalkΛදࣔͯ͠Έ·͠ΐ͏ ඞཁͳπʔϧ ϫʔΫεϖʔε τϥϯεΫϦϓτ Transcript show: 'Hello
Smalltalk'. ϫʔΫεϖʔεʹҎԼͷίʔυΛهड़ τϥϯεΫϦϓτʹHello SmalltalkΛग़ྗ͢Δ 31
ୈճ4NBMMUBMLษڧձ ϓϩάϥϜͷ࣮ߦํ๏ do it ࣮ߦ͢ΔϓϩάϥϜ Λબͯ͠"-5ʢӈΫ ϦοΫʣ ΫϦοΫ ʮࣜΛධՁʯΛબ ͍ํ
32
ୈճ4NBMMUBMLษڧձ ϓϩάϥϜ݁Ռͷग़ྗํ๏ print it Transcriptʹग़ྗ 1 + 3. Transcript show:
1 + 3. ʮࣜΛදࣔʯΛબ 33
ୈճ4NBMMUBMLษڧձ γεςϜϒϥβ ΫϥεݕࡧɼΫϥεఆٛΛߦͳ͏ ։͖ํ ϫʔϧυϝχϡʔ 8PSMENFOV ͷ։͘ ։͘ϝχϡʔ γεςϜϒϥβʢ#SPXTFSʣ 34
ୈճ4NBMMUBMLษڧձ ΠϯεϖΫλ ΦϒδΣΫτΛௐΔπʔϧ YΛΠϯεϖΫλͰ֬ೝ ΦϒδΣΫτΛબɼ"-5ʢӈΫϦοΫʣԡ͠ ͳ͕ΒΫϦοΫɽ ʮࣜΛΠϯεϖΫτʯΛબ 35
ୈճ4NBMMUBMLษڧձ ΠϯεϖΫλΛͬͯΈΑ͏ "ྻͷཁૉΛϥϯμϜͰऔΓग़͢" x := #(#(7 9) #(3 1)) atRandom.
x. "ΠϯεϖΫτ" x inspect. "Do It" ͲͪΒͷྻ͕Yʹೖ͞Ε͔ͨௐͯΈΔ ·ͨ 36
ୈճ4NBMMUBMLษڧձ ϝιουɾϑΝΠϯμʢMethod Finderʣ ϝιουݕࡧΛ͢Δπʔϧ ϫʔϧυϝχϡʔ 8PSMENFOV ͷ։͘ ։͘ϝχϡʔ ϝιουɾϑΝΠϯμ NFUIPEpOEFS
37
ୈճ4NBMMUBMLษڧձ ϊʔςΟϑΝΠΞ σόοΧΛ։͘ Τϥʔͷࡍʹ։͘ܯࠂදࣔ ࠷ॳɼதࢭϘλϯʢ"CBOEPOʣͰߏΘͳ͍ 38
ୈճ4NBMMUBMLษڧձ σόοΨʢDebuggerʣ ͍ํʮࣗ༝ࣗࡏ4RVFBLϓϩάϥϛϯάʯΛࢀߟʹ͍ͯͩ͘͠͞ 39
ୈճ4NBMMUBMLษڧձ γϣʔτΧοτ .BD 8JOEPXT ϫʔΫεϖʔε Λ։͘ $.% L "-5 L
τϥϯεΫϦϓτ Λ։͘ $.% U "-5 U γεςϜϒϥβ Λ։͘ $.% C "-5 C EPJU $.% E "-5 E QSJOUJU $.% Q "-5 Q $.% "-5 ϐϦΦυʢ.ʣ ڧ੍ऴྃ ׂΓࠐΈ 40
ୈճ4NBMMUBMLษڧձ ऴྃํ๏ ϫʔϧυϝχϡʔͷʮอଘͯ͠ऴྃʯ·ͨʮऴྃʯ ࣮ߦதͷϓϩάϥϜʢϓϩάϥϜͷ࣮ߦঢ়ଶʣΛ ΠϝʔδʹอଘͰ͖Δ ࠶ͼىಈͨ͠ࡍʹɼલճͷঢ়ଶ͕࠶ݱ͞ΕΔ 41
ୈճ4NBMMUBMLษڧձ Πϝʔδͷอଘʹ͍ͭͯ छྨ ༰ อଘ TBWF ݱࡏͷঢ়ଶΛݱࡏ༻͍ͯ͠ΔΠϝʔδʹอଘ ผ໊อଘ TBWFBT ผͷΠϝʔδʹอଘʹঢ়ଶΛอଘɽΠϝʔδ໊
Λܾఆ͢Δɽอଘޙɼ৽ͨʹ࡞ͨ͠Πϝʔ δը໘͕දࣔ ৽͍͠൛ͱͯ͠อଘ TBWFBTOFXWFSTJPO ࣗಈతʹΠϝʔδ໊ʹόʔδϣϯ൪߸͕Ճ͞ ΕΔ อଘͯ͠ऴྃ TBWFBOERVJU ݱࡏͷঢ়ଶΛݱࡏ༻͍ͯ͠ΔJNBHFʹ อଘͯ͠ऴྃ Πϝʔδͱ4NBMMUBMLͷΦϒδΣΫτΛ ϑΝΠϧʹμϯϓͨ͠ͷ 42
Կ͔࡞Γ·͠ΐ͏ BMIܭࢉπʔϧΛ࡞Ζ͏ 43
ୈճ4NBMMUBMLษڧձ BMI #.*ମॏ<LH>× <N>º<N> ඪ४ମॏºY ຊංຬֶձʹΑΔͱ #.*͕ͷ߹͕ඪ४ମॏ #.*͕Ҏ্ͷ߹Λංຬ #.*͕ະຬͰ͋Δ߹Λͤ 9//2.
“” 9\\2. “༨Γ” 44
ୈճ4NBMMUBMLษڧձ UIΛͬͨπʔϧʹ͢ΔͨΊʹ h := FillInTheBlank request:'(cm)?' initialAnswer:'0'. “ΓByteStringͳͷͰ ม͢Δ” h
asInteger . 45
ୈճ4NBMMUBMLษڧձ UIΛͬͨπʔϧʹ͢ΔͨΊʹ Utilities informUser: 'ܭࢉத' ! during: [(Delay forSeconds: 1)
wait]. ඵؒ4RVFBLͷը໘্ʹܭࢉதͱදࣔ͢Δ 46
ୈճ4NBMMUBMLษڧձ | h w bmi sw | h := FillInTheBlank
request: '(cm)?' initialAnswer: '0'. h asInteger <= 0 ifTrue:[ ^false ]. w := FillInTheBlank request: 'ମॏ(kg)?' initialAnswer: '0'. h asInteger <= 0 ifTrue:[ ^false ]. bmi := w // ( ( h*h ) //10000 ). sw := ( h*h*22 ) // 10000 Utilities informUser: 'ܭࢉத' ! during: [(Delay forSeconds: 1) wait ]. Ұ෦ 47
ʢ͓·͚ʣ ΫϥεͱΠϯελϯεฤ ୈ26ճ Smalltalkษڧձ ٢ాɹᠳ 48
ୈճ4NBMMUBMLษڧձ ΫϥεΧςΰϦ࡞ Ϋϥε໊࡞ ϝιουΧςΰϦ࡞ ϝιου࡞ Ϋϥεఆٛ ΫϥεఆٛΫϥεϒϥβΛ༻͍Δ 49
ୈճ4NBMMUBMLษڧձ Ϋϥεఆٛ - ΫϥεΧςΰϦ࡞ "-5 ӈΫϦοΫ Λ ԡ͠ͳ͕ΒΫϦοΫ ʮ߲ΛՃʯΛબ 50
ୈճ4NBMMUBMLษڧձ Ϋϥεఆٛ εʔύʔΫϥε໊TVCDMBTTΫϥε໊ JOTUBODF7BSJBCMF/BNFTΠϯελϯεม໊Πϯελϯεม໊ DMBTT7BSJBCMF/BNFTΫϥεม໊Ϋϥεม໊ QPPM%JDUJPOBSJFTϓʔϧࣙॻ໊ DBUFHPSZΫϥεΧςΰϦ ඞͣεʔύʔΫϥεΛ࣋ͭ ΫϥεϒϥβͷίʔυϖΠϯʹهड़ 51
ୈճ4NBMMUBMLษڧձ Ϋϥεఆٛ Ϋϥεఆٛͷྫ 52
ୈճ4NBMMUBMLษڧձ Ϋϥεఆٛͷө accept γϣʔτΧοτ$.% "-5 T wهड़ͨ͠ఆٛΛอଘʢมߋ௨ʣ wΫϥεఆٛɼϝιουఆٛΛՃɾมߋͷࡍߦͳ͏ w"-5
ӈΫϦοΫ ྃղͰߦͳ͏ ॳΊͯͷBDDFQUͷࡍʹӈͷϑΥʔϜ ͕දࣔ͞ΕΔͷͰΠχγϟϧΛೖྗ 53
ୈճ4NBMMUBMLษڧձ ϝιουͷఆٛ messageSelectorAndArgumentNames "comment stating purpose of message" | temporary
variable names | statements ϝιουͷςϯϓϨʔτͷҙຯ ̍ߦϝιου໊ ̎ߦίϝϯτ ̐ߦҰ࣌มͷఆٛ ̑ߦҎ߱ϝιουͷಈ࡞هड़ 54
ୈճ4NBMMUBMLษڧձ Πϯελϯεͷੜ x := Human new. ΫϥεʹOFXϝοηʔδΛૹ৴ 55
ʢ͓·͚ʣجຊΫϥεฤ ୈ26ճ Smalltalkษڧձ ٢ాɹᠳ 56
ୈճ4NBMMUBMLษڧձ جຊΫϥεͷհ Number Block CollectionΫϥε ΠςϨʔλ Bag, Set Array, OrderedCollection
Dictionary จࣈྻʢStringʣ Stream ଞʹ৭ʑͳΫϥε͕͋Γ·͢ 57
ʢ͓·͚ʣԠ༻ฤ ୈ26ճ Smalltalkษڧձ ٢ాɹᠳ 58
ୈճ4NBMMUBMLษڧձ Workspaceͷ༰ͷอଘ ΛΫϦοΫ͠ɼTBWFDPOUFOUTUPpMFΛબ 59
ୈճ4NBMMUBMLษڧձ ιʔεͷཧํ๏ʢSqueakʣ image͝ͱ csϑΝΠϧʢࠓճհ͠ͳ͍ʣ stϑΝΠϧ Monticelloʢࠓճհ͠ͳ͍ʣ Metacelloʢୈճ4NBMMUBMLษڧձʣ 60
ୈճ4NBMMUBMLษڧձ Πϝʔδ୯ҐͷόοΫΞοϓ JNBHFϑΥϧμΛίϐʔ 61
ୈճ4NBMMUBMLษڧձ stϑΝΠϧͰͷอଘ ϓϩδΣΫτ໊ɼΫϥε໊·ͨϝιου ໊ͰӈΫϦοΫ͠ϑΝΠϧΞτ 62
ୈճ4NBMMUBMLษڧձ stϑΝΠϧͷಡΈࠐΈ ։͖ํ ϫʔϧυϝχϡʔ 8PSMENFOV ͷ։͘ ։͘ϝχϡʔ ϑΝΠϧɾϦετ ϑΝΠϧɾϦετ͔ΒTUϑΝΠϧΛಡΈࠐΉ 63
ୈճ4NBMMUBMLษڧձ stϑΝΠϧͷಡΈࠐΈ ϑΝΠϧɾϦετΑΓTUϑΝΠϧΛࢦఆ͠ɼ ϑΝΠϧΠϯ͢Δ 64
ୈճ4NBMMUBMLษڧձ Monticello '51ɼ)551αʔόʹอଘ͢Δ͜ͱ͕Մೳ 65
͓ΘΓʹ 66
ୈճ4NBMMUBMLษڧձ ݱࡏνϡʔτϦΞϧ࡞த 4RVFBLΠϯετʔϧ 4RVFBLͷجຊૢ࡞ جຊจ๏ Ϋϥεఆٛ
جຊΫϥε /VNCFS #MPDL $PMMFDUJPOΫϥε ΠςϨʔλ จࣈྻʢ4USJOHʣ 4USFBN σόοΫ ྫ֎ॲཧ πʔϧ ୳ࡧͷཱྀ εϨουॲཧ .PSQI ύοέʔδཧ 8FC 4FBTJEF *MJBE .BHNB +40/ 9.- ਖ਼نදݱ 5SBJUT ଞʹཁ͕͋ΕͲ͏ͧ 67
SmalltalkΛͬͱษڧ͍ͨ͠ਓͷͨΊʹ 68
ୈճ4NBMMUBMLษڧձ ͓͢͢Ίࢀߟจݙ ࣗ༝ࣗࡏ4RVFBLϓϩάϥϛϯά 4NBMMUBMLͰֶͿΦϒδΣΫτࢦϓϩάϥϛϯάͷຊ࣭ 4RVFBLCZ&YBNQMFIUUQXXXTRVFBLCZFYBNQMFPSH 4NBMMUBMLΠσΟΦϜ
έϯτɾϕοΫͷ4NBMMUBMLϕετϓϥΫςΟεɾύλʔϯ ॻ੶ 69
ୈճ4NBMMUBMLษڧձ ͓͢͢Ίจݙ $JODPN4NBMMUBML%BJMZʢಈըʣIUUQ XXXDJODPNTNBMMUBMLDPNVTFSCMPHTDJODPNCMPH7JFX DPOUFOUTNBMMUBML@EBJMZ 4NBMMUBMLͷUখจࣈͰ͢ɹIUUQEIBUFOBOFKQTVNJN Ͳ͏ॻ͘ʁPSHIUUQKBEPVLBLVPSH αΠτ 70
ୈճ4NBMMUBMLษڧձ ML 4RVFBLKBIUUQXXXTNBMMUBMLKQNBJMNBO MJTUJOGPTRVFBLKB 4.-IUUQXXXTNBMMUBMLKQ4.- 4RVFBLEFWIUUQ MJTUTTRVFBLGPVOEBUJPOPSHNBJMNBOMJTUJOGP TRVFBLEFW 1IBSPIUUQMJTUTHGPSHFJOSJBGSDHJCJO NBJMNBOMJTUJOGPQIBSPVTFST
71