E D R , A S I H C RSS

Small Talk_Introduce

~cpp 	
                      Smalltalk— Œ€ํ•œ ช‡ €€ ด•ธฐ
                                                         98. 11. 16. €ฐฌํ™
                                             mailto:andrea92@mail.hitel.net

ด €€ SmalltalkŠ” ํ”„กœทธž˜ฐ –ธ–ด—  Œ€ํ•œ ช‡ €€ ค‘š”ํ•œ ด•ธฐ  ‹ดณ  
žˆŠต‹ˆ‹ค. Dolphin Smalltalk  98„ งŒ“  Object  ArtsŠ” ํšŒ‚ฌ€ “ด  "Dolphin 
Smalltalk White pager"˜ ‚ดšฉ—  œ€ ƒฐํ•œ ฒƒ„ ช‡ €€ งถ™—ฌ„œ Smalltalk
— Œ€ํ•œ ด•ธฐ ‹œž‘ํ•ด ณด ค ํ•ฉ‹ˆ‹ค. 

‚ฌ‹ค Smalltalk— €ํ•œ ตญ‚ด˜ žฃŒŠ”  งคšฐ ˆ•ฝํ•œ ํŽธž…‹ˆ‹ค. ดƒํ•˜ฒŒ„  šฐฆฌ 
‚˜—„œŠ” C/C++ด ํ”„กœทธž˜ฐ –ธ–ด˜ ฅ˜ ดฃจณ  žˆœฉฐ, š”ฆˆŒ€  Delphi
™€ Visual Basic„    ทธ ค‘š”„ ”ํ•˜ณ  žˆŠต‹ˆ‹ค. ทธŸฌ‚˜  •ž‘ ฐฒด€ํ–ฅ ํ”„
กœทธž˜ฐ –ธ–ด˜ กฐƒดž ™„ฒฐํŒดณ  ํ•  ˆ˜ žˆŠ” Smalltalk— Œ€ํ•œ žฃŒŠ” ˜ ฐพ•„ณดธฐ –ด ตŠต‹ˆ‹ค. ดŠ” ƒšฉ Smalltalk ‹œŠคํ…œ˜ €ฒฉด งŒงŒ˜  •Šœฉฐ, 
Smalltalk  „‚ฐ ตœก ธฐ€—„œ „กœ ค‘š”ํ•˜€ •ŠฒŒ —ฌธฐณ  žˆธฐ •Œฌธดธฐ„ ํ•ฉ
‹ˆ‹ค.
ทธŸฌ‚˜ 90…„Œ€— “ค–ด„œฉด„œ€„ฐ ํ›Œฅญํ•œ ณตฐœšฉ Smalltalk ‹œŠคํ…œด งŽด ฐฐํฌ˜
ณ  žˆœฉฐ, ํ•„ž€ žฃŒ‹ค— ˜ฌฆฐ Dolphin Smalltalk —ญ‹œ ทธŸฐ ํ›Œฅญํ•œ ฐœฐœ ํ™˜
ฒฝ— †ํ•ฉ‹ˆ‹ค.

ด œ •ฝํ•˜‚˜งˆ  €Š” Smalltalk— €ํ•œ žฃŒ กฐธˆ”ฉ ํž˜‹ฟŠ” Œ€กœ  —ฌŸฌ„—ฒŒ 
†Œฐœ‹œœ “œฆด ฒƒž…‹ˆ‹ค. ก  ํ•œ ฒˆ— งŽ€ –‘„ “œฆฌ€Š” ชปํ•˜ฒ €งŒ,  •žœกœ 
˜ฌฆฌŠ” žฃŒ€ —ฌŸฌ„ด Smalltalk ณต€ํ•˜Š”ฐ žˆ–ด„œ ž‘œ‚˜งˆ „›€ด ˜—ˆœ
ฉด ํ•˜Š” ฐ”žจž…‹ˆ‹ค.

 € Smalltalk –ธ–ด— Œ€ํ•œ ธฐณธ ธ ƒฐ ฒ ํ•™„ „‹จํžˆ †Œฐœํ•ฉ‹ˆ‹ค. ํ”ํžˆ“ค 
Smalltalk— Œ€ํ•ด €€ธฐ ‰ฌšด ˜คํ•ด“ค ˜ํ•œ —ฌธฐ—„œ ‹คฃจ„ก ํ•˜ฒ Šต‹ˆ‹ค. ทธž˜
„œ Smalltalk   –ธ–ดŠ” ฐฐ›Œ  งŒํ•œ  €˜€ žˆ‹คŠ”   ฒƒ ถฉ„ํžˆ  ‹ค œ  ‘šฉ
(application) ํ”„กœทธžจ„ งŒ“œŠ”ฐ ‚ฌšฉํ•  ˆ˜  žˆ‹คŠ” ฒƒ„ •Œ ค“œฆฌณ ž ํ•ฉ‹ˆ
‹ค.

1. ฐฒด€ํ–ฅ, ทธฆฌณ  Smalltalk
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
90…„Œ€ ดˆ—Š” จธ€•Š•„ ฌดฅธชจ(software)Š” ฐฒด(object)™€  €ํ’ˆ(component) 
‚ฌšฉํ•˜—ฌ งŒ“ค–ดงˆ ฒƒดŠ” ด•ธฐ€ ฌด„ํ–ˆŠต‹ˆ‹ค. —ฐ ˜คŠ˜‚  งŽ€ ฌดฅธชจ“ค
ด ฐฒด™€ €ํ’ˆœกœ งŒ“ค–ด€ณ  žˆœฉฐ, COMด‚˜ CORBA™€ ฐ™ด ฐฒด™€ €ํ’ˆ„ ค‘
‹œํ•˜Š” —ฌŸฌ €€ ธฐˆ “คด ฐœฐœ ‚ฌšฉ˜ณ  žˆŠต‹ˆ‹ค. 80…„Œ€ ดˆฐ˜— “žฅํ•˜—ฌ ฌด
ฅธชจ ฐœฐœ— ํ•˜‚˜˜ ปค‹คž€ ‚ฌด ˜–ด„ฆฐ "ฐฒด €ํ–ฅ"(Object Oriented) ํŒจŸฌ
‹คž„€ ˜คŠ˜‚ — ™€„œŠ” ‚ฌ‹คƒ ฌดฅธชจ˜ ชจ“  ˜—ญ—  šฉ˜Š” ํŒจŸฌ‹คž„ด ˜–ด
„ ธŠต‹ˆ‹ค. 
ด œŠ” –ด–ปฒŒ ํ•˜ฉด งˆ ข‹€ ฌดฅธชจ ณด‹ค ฆฌ, ทธฆฌณ  งŽด งŒ“ค ˆ˜ žˆŠƒ™€ 
”ถˆ–ด ‚ฌšฉž˜ š”ตฌ— ”ฐ ฌดฅธชจ –งˆ‚˜ ‰ฝฒŒ œ €.€ฆฌํ•  ˆ˜ žˆŠƒ€ ค‘
š”ํ•œ ฌธ œกœ Œ€‘˜—ˆœฉฐ, ฐฒด€ํ–ฅ ํŒจŸฌ‹คž„€ ดŸฐ ฌธ œ ํ•ดฒฐํ•  ˆ˜ žˆŠ” ํ•˜
‚˜˜ Œ€•ˆ„  œ‹œํ•ด —ˆŠต‹ˆ‹ค. 

˜คŠ˜‚  งŽด ‚ฌšฉ˜ณ  žˆŠ” C++, Java, Object Pascal “€ ชจ‘ ํ”„กœทธž˜ฐ –ธ
–ด— ฐฒด €ํ–ฅ ํŒจŸฌ‹คž„„  šฉ‹œํ‚จ ข‹€ ˜ˆณ  ํ•  ˆ˜ žˆณ˜Šต‹ˆ‹ค. ทธŸฌ‚˜ ด
Ÿฌํ•œ ‹œ„“ค€ ธฐกด— กดžฌํ•˜Š” ํŒจŸฌ‹คž„ œ„— ฐฒด €ํ–ฅ ํŒจŸฌ‹คž„„ ง”Œšด  ฒฐ
 ดˆž˜ํ•˜—ฌ, ํ•„š” ดƒœกœ ณตžกํ•œ –ธ–ด ช…„ งŒ“คฒŒ ˜—ˆœฉฐ, ธฐกด˜  ตฌ
กฐ  ํ”„กœทธž˜ฐ Šต€— ตˆ™ํ•œ šฐฆฌ“ค—ฒŒ ฐฒด €ํ–ฅ ธฐฒ•„ ตฌํ˜„ํ•  ˆ˜ žˆŠ” ƒ
ฐ˜ —ฌœ  ํ—ˆšฉํ•˜€ •Š•˜Šต‹ˆ‹ค. ‚ฌžŒ“ค€ ž‹ ด ด•Œณ  žˆŠ” ฐฉ‹Œ€กœ ํ”„
กœทธž˜ฐ„ ํ•˜ณ , ”ฐ„œ ฐฒด€ํ–ฅ –ธ–ดกœ  งŒ“ค–ด„ ํ”„กœทธžจด  „ํ˜€ ฐฒด€ํ–ฅ 
‹ต€ •ˆ€ ํ”„กœทธžจด ˜ณ  งŒ ฒƒž…‹ˆ‹ค. ทธž˜„œ  €Š” ˆœˆ˜ํ•˜ฒŒ ฐฒด€ํ–ฅ ธ €
 —„œ ฌธ œ ฐ”ณดŠ” ฒƒด –ด–จŒ ํ•˜ณ  ƒฐํ•˜ฒŒ ˜—ˆœฉฐ, ทธž˜„œ  ฐพ•„‚ดฒŒ 
œ ฒƒด ฐ”กœ Smalltalk –ธ–ดž…‹ˆ‹ค.

1980…„Œ€ ดˆฐ˜— ฒ˜Œ ชจŠต„ “œŸฌ‚ธ Smalltalk ‹œŠคํ…œ€ ‹‹œ˜ ฌดฅธชจ  œ„›ํšŒ
(software community)— ˜ํ•ด  งคšฐ ค‘š”ํ•œ ฐฒด€ํ–ฅ ํ”„กœทธž˜ฐ ํ™˜ฒฝœกœ —ฌฒจ
กŒณ , Smalltalk˜ –ธ–ด ช…„Š” ‹คฅธ  ชจ“  ฐฒด€ํ–ฅ ํ”„กœทธž˜ฐ –ธ–ด˜  žฃŒ€€ 
˜—ˆŠต‹ˆ‹ค. ˜ํ•œ Smalltalk ํ™˜ฒฝ—„œ ‚ฌšฉ˜Š” งŽ€ ฐœ…“คด šฐฆฌ€ ํ˜„žฌ ‚ฌšฉ
ํ•˜ณ  žˆŠ” Delphi‚˜ Visual Basic “—  šฉ˜ณ  žˆŠ” ฒƒœกœ  •Œ, ดŸฌํ•œ ฐ
ฒด€ํ–ฅ ธ ํ™˜ฒฝ€ งคšฐ †’€ ƒ‚ฐ„„ €€ณ  žˆ‹คŠ” ฒƒ„ ณด—ฌŠ” ข‹€  ˜ˆ
ณ  ํ•˜ฒ Šต‹ˆ‹ค. 

ทธŸ—„ ถˆตฌํ•˜ณ  SmalltalkŠ” ฒ”šฉ ํ”„กœทธž˜ฐ –ธ–ดกœจ ‚ฌšฉ˜ธฐ—Š” ช‡ €€
˜ žฅฒฝ„ €€ณ  žˆ—ˆŠต‹ˆ‹ค. Dolphin SmalltalkŠ” ดŸฌํ•œ žฅฒฝ“ค„ ›ฐ–ด„˜–ด„œ 
งˆ‚ด Smalltalk„ ํ•˜‚˜˜ ํ›Œฅญํ•œ ฐœฐœํ™˜ฒฝด   ˆ˜ žˆ‹คŠ” ฒƒ„ ณด—ฌณ  žˆŠต
‹ˆ‹ค. ดŠ” „‹จ Dolphin SmalltalkงŒด •„‹ˆ, „ฆฌ ‚ฌšฉ˜ณ  žˆŠ”  VisualAge 
for Smalltalk‚˜ Visual Smalltalk “˜ ํ™˜ฒฝ—„ ˜‘ฐ™ด  šฉ˜ณ  žˆœฉฐ, ”ฐ
„œ ดŸฌํ•œ žฅฒฝ“ค€ „ช…ํžˆ ํ•ดฒฐ  ˆ˜ žˆ‹คŠ” ฒƒ„ ณด—ฌค‹ˆ‹ค.

ด œ ํ”ํžˆ ํ‰€˜ณ  žˆŠ” Smalltalk— Œ€ํ•œ žฅฒฝ“ค—Š” –ด–ค ฒƒด žˆŠ”€ •Œ•„ณด
ฒ Šต‹ˆ‹ค. Œ€€„ Smalltalk— Œ€ํ•œ ํ‰€  ค‘—Š” ˜คํ•ดํ•ด„œ „œ ฒƒ“คด  งŽœ
ฉฐ, ดฒƒด Smalltalk€ ฒ”šฉ ํ”„กœทธž˜ฐ –ธ–ดกœจ “ฐดŠ”ฐ ํ•˜‚˜˜ ปค‹คž€ žฅฒฝ
ด ˜—ˆ˜ ฒƒž…‹ˆ‹ค.


2. SmalltalkŠ” Šฆฌ‹ค
~~~~~~~~~~~~~~~~~~~~~
1981…„ 8›”— ถœ‹œœ "Smalltalk-80"€ ฒซ ฒˆงธกœ ถœ‹œœ Smalltalk  ‹œŠคํ…œœกœ
จ ํฐ ˜ €€ณ  žˆ—ˆŠต‹ˆ‹ค. ด Smalltalk-80ด  œŒ€กœ Œ•„€ คฉด  ค‘Œ€ํ˜•
ธ‰ ‹ˆปดํ“จํ„ดƒ˜ „Šฅ„ €„  ‹œŠคํ…œด ํ•„š”ํ–ˆŠต‹ˆ‹ค. š”ฆ˜€ •„ฌด ‡€„ 
•ŠฒŒ ‚ฌšฉ˜ณ  žˆŠ”  œกœ ดฃจ–ด„ ทธ(bitmap graphic) ทธž˜ํ”ฝ ‚ฌšฉž  ํ™˜
ฒฝGUI), ชจ“  ฒƒด ฐฒดดฉฐ ด ฐฒด“ค „— กดžฌํ•˜Š” ƒ†„, ทธฆฌณ  ธฐ–ต ณต„
„  ํšจœจ œกœ  €ฆฌํ•˜ธฐ  œ„ํ•œ  “ฐ ˆธฐ  ˆ˜ง‘(garbage  collection)  “  ฒ˜Œ 
Smalltalk—„œ †Œฐœœ ดŸฌํ•œ ฐœ…„ ตฌํ˜„ํ•˜ธฐ œ„ํ•ด„œŠ” ทธ ‹‹œกœจŠ” งคšฐ  †’
€ ‚ฌ–‘˜ ‹œŠคํ…œด  ํ•„š”ํ–ˆ˜ ฒƒž…‹ˆ‹ค. „ก  ดŸฌํ•œ ธฐŠฅ“คด ฐœธšฉ  ปดํ“จํ„ฐ
(PC)—„œ ตฌํ˜„   ˆ˜Š” žˆ—ˆฒ €งŒ,  80…„Œ€— „ฆฌ  ‚ฌšฉ˜„Œ PC—„œ  Œ•„€Š” 
Smalltalk ƒฐํ•œ‹คฉด? •„งˆ ช… –ด ํ•˜‚˜  ˆ˜ํ–‰ํ•˜Š”ฐ ํžˆ ช‡ ‹ญดˆŠ”  ฆด
ฒƒด ป”ํ–ˆ„ ฒƒž…‹ˆ‹ค.

ทธŸฌ‚˜ €ธˆ€ ‹คฆ…‹ˆ‹ค. ฌดฅธชจ(hardware)Š” ˆˆ€‹  †„กœ ฐœ „ํ•˜—ฌ, ํ˜„žฌ  šฐ
ฆฌ€ PCกœ “ฐณ  žˆŠ” ํŽœํ‹ฐ—„ธ‰˜ ปดํ“จํ„Š” ฐ 80…„Œ€— “ฐด˜ Œ€ํ˜•  ปดํ“จํ„˜ 
„Šฅ„ ํ›จ”ฌ ›ฐ–ด„˜ณ  žˆŠต‹ˆ‹ค. ˜ํ•œ ฌดฅธชจ —ญ‹œ งŽด ฐœ‹ฌํ•˜—ฌ ฐ™€ ‹œŠคํ…œ
€„ ณด‹ค ํšจœจ ธ  ˆ˜ํ–‰ „Šฅ„  ณดžฅํ•  ˆ˜ žˆฒŒ  ˜—ˆŠต‹ˆ‹ค. ด œ  „กœ†Œ 
SmalltalkŠ” 486DX 66  •„˜ ‹œŠคํ…œ—„œ„ ถฉ„ํžˆ ž˜ Œ•„ฐˆ ˆ˜ žˆฒŒ ˜—ˆœฉฐ, 
ํ”ํžˆ šฐฆฌ“คด ‚ฌšฉํ•˜ณ  žˆŠ” ํŽœํ‹ฐ—„ธ‰ ปดํ“จํ„—„œŠ” ”š ” ตœ ˜ „Šฅ„  ฐœ
ํœ˜ํ•˜ณ  žˆŠต‹ˆ‹ค. 

†„— Œ€ํ•ด„œ ด•ธฐํ•  •Œ ˆ˜ํ–‰  †„(running performance)™€ ”ถˆ–ด  งˆ  ˆ˜ 
—†Š” ฒƒœกœŠ” ฐœฐœ †„€ žˆŠต‹ˆ‹ค. š”ฆ˜ ฐ™ด —…ฌด ฒ˜ฆฌ š”ตฌ€ ณตžกํ•œ ฒฝ
šฐ—Š” ํ•ด‹ ธฐŠฅ„ ˆ˜ํ–‰ํ•˜Š” ชจฅธชจ —ญ‹œ งคšฐ ณตžกํ•˜ฒŒ ตฌ„  ˆ˜ ฐ–— —†Šต‹ˆ
‹ค. ด œŠ” '“ธงŒํ•˜‹ค'ณ  ƒฐ˜Š” ํ”„กœทธžจ„ ‘˜Ÿฌณดฉด ทธ ฉ˜€ –ดงˆ–ดงˆํ•˜ฒŒ 
„Œ€ํ•ด ธžˆŒ„  ˆ˜ žˆŠต‹ˆ‹ค. ”ฐ„œ ดŸฌํ•œ ํ”„กœทธžจด –งŒํ  ฅดฒŒ  ‹คํ–‰
˜Š”€„ ค‘š”ํ•˜ฒ €งŒ, –งŒํ ฆฌ ดŸฌํ•œ ํ”„กœทธžจ„ งŒ“ค ˆ˜ žˆŠƒ—  Œ€ํ•œ 
ฒƒ„ ƒ‹ํ•œ €‹ฌ˜ Œ€ƒด ˜ณ   žˆŠต‹ˆ‹ค. —ฌŸฌ„€ ฐœฐœํ•˜Š”ฐ 6ฐœ›”ด  ฆฌ
ณ , ‹คํ–‰ํ•˜Š”ฐ 3„ด ฆฌŠ” ฐœฐœ ํ™˜ฒฝ, ฐœฐœํ•˜Š”ฐ 3ฐœ›”ด ฆฌณ  ‹คํ–‰ํ•˜Š”
ฐ 6„ด ฆฌŠ” ฐœฐœ ํ™˜ฒฝด žˆ‹คฉด, –ดŠ ชฝ„ „ ํƒํ•˜ฒ Šต‹ˆŒ? •„งˆ Œ€€„˜ 
ฒฝšฐ ํ›„ž „ ํƒํ•  ฒƒž…‹ˆ‹ค. ‹จ  ฅธ ‹œ„ •ˆ— ํ”„กœทธžจ˜ ฐœฐœ„ ‚ด †“
œฉด, ‚จŠ” ‹œ„€ ํ”„กœทธžจ˜ ˆ˜ํ–‰ †„ ํ–ฅƒ„ œ„ํ•ด ถฉ„ํžˆ ํ• ˜ˆํ•  ˆ˜ žˆธฐ •Œ
ฌธž…‹ˆ‹ค.

Smalltalk€ ฐ”กœ  ทธŸฌํ•œ ‹œŠคํ…œž…‹ˆ‹ค.  „ช…ํžˆ ช‡  „ •ˆ  ˜Š” ฐ˜ณต  ˆ˜ํ–‰ฌธ
(loop)˜ ˆ˜ํ–‰ ‹œ„„ ธก •ํ•˜ฉด SmalltalkŠ”  „ฆฌ “ฐดŠ” ‹คฅธ –ธ–ด(C,  Object 
Pascal “)“คณด‹ค Šฆฐ ฒƒ€ ‚ฌ‹คž…‹ˆ‹ค.  ทธŸฌ‚˜ ดฒƒ€ Smalltalk€  œณตํ•˜Š” 
ƒ‚ฐ„ œตํ†ต„„ ƒฐํ•˜ฉด ถฉ„ํžˆ ํฌ„˜–ดงˆ ˆ˜ žˆ‹คณ  ƒฐํ•ฉ‹ˆ‹ค. Java  –ธ
–ด ˜ํ•œ ฒฐฝ” C –ธ–ด™€ ฐ™€  †„ ‚ดธฐŠ” –ด ตŠต‹ˆ‹ค. ทธŸฌ‚˜ Java€  €€ณ  
žˆŠ” ํŠ„“ค€ ถฉ„ํžˆ งŽ€ ‚ฌžŒ“คด Java—   ธ“ค„ก งŒ“คณ  žˆŠต‹ˆ‹ค.
SmalltalkŠ” ํฐ ‹œŠคํ…œ„ „„ํ•  •Œ „€ ฐœํœ˜ํ•ฉ‹ˆ‹ค. ฐฒด€ํ–ฅ  ํŒจŸฌ‹คž„ด
Š” ฒƒด ›ž˜Š” „‹จํ•œ ฌธ œ ํ•ดฒฐํ•˜ธฐณด‹คŠ” ํฐ ‹œŠคํ…œ„ –ด–ปฒŒ ํ•˜ฉด ‰ฝฒŒ „„ํ•˜ณ  งŒ“ค ˆ˜ žˆŠ”€— ดˆ „ งžถ”—ˆธฐ •Œฌธž…‹ˆ‹ค. C—„œŠ” ‘–ด „กœ  ‚  
ํ”„กœทธžจ„, C++˜ ฐˆž˜(class) ‚ฌšฉํ•˜—ฌ —ด „กœ งฐ‹คณ  ํ•ด„œ, C++ –ธ–ด€  C
ณด‹ค ชปํ•˜‹คŠ” ‚ฌžŒ€ —†„ ฒƒž…‹ˆ‹ค. งˆฐฌ€€กœ, Smalltalk –ธ–ดŠ” ํฐ  ‹œŠคํ…œ
„ „„ํ•˜ณ  ฐœฐœํ•˜Š”ฐ ”š ” งŽ€ ํž˜„ ‚˜ํƒ€ƒ…‹ˆ‹ค. ดŠ” ฐฒด€ํ–ฅ ํŒจŸฌ‹คž„
„ ”ฐฅดŠ” ฐ„œ ˜คŠ” ช…ํ™•ํ•œ „„ •Œฌธ— €Šฅํ•œ ฒƒž…‹ˆ‹ค.

Dolphin Smalltalk™€ Delhi—„œ ›†Œˆ˜€ 200งŒฐœธ ฐฐ—ด €ˆ˜—„œ –ด–ค ฐ’„ ฐพ
•„‚ดŠ” ‹คํ—˜„ ํ–ˆŠต‹ˆ‹ค.

<ฐ”ํƒ•€ 1> 200งŒฐœ˜ ฐฐ—ด—„œ ํŠ • ›†Œ ฐพŠ” Delphi ํ”„กœทธžจ
----------------------------------------------------------
var
  Data: array[1 .. 2000000] of Integer;

procedure TForm1.Button1Click(Sender: TObject);
var
  i, Key: Integer;
begin
  // ฐฐ—ด ดˆธฐํ™”ํ•˜ธฐ
  for i := 1 to High( Data ) do
    Data[i] := i * 2;

  Key := 6500000;       // กดžฌํ•˜€ •ŠŠ” ฐ’.

  for i := 1 to High( Data ) do
  begin
    if Data[i] = key then
    begin
      ShowMessage( IntToStr(i) );
      Exit;
    end;
  end;
  ShowMessage('ชป ฐพŒ');
-----------------------------------------------------------

<ฐ”ํƒ•€ 2> 200งŒฐœ˜ ฐฐ—ด—„œ ํŠ • ›†Œ ฐพŠ” Smalltalk ํ”„กœทธžจ
-----------------------------------------------------------
| data key |

"ฐฐ—ด ดˆธฐํ™”ํ•˜ธฐ"
data := Array new: 2000000.
1 to: data size do: [ :i | data at: i put: i * 2. ].

key := 6500000. "กดžฌํ•˜€ •ŠŠ” ฐ’"

1 to: data size do: [ :i |
        (data at: i) = key ifTrue: [
                ^MessageBox notify: i displayString
        ]
].
MessageBox notify: 'ชป ฐพŒ'.  
-----------------------------------------------------------

œ„˜ „‹จํ•œ ฒค˜งˆํฌ ‹คํ—˜—„œ, Object Pascal„ ‚ฌšฉํ•˜Š” Delphi˜ ฒฝšฐŠ”  ‹ค
ํ–‰ํ•˜Š”ฐ 0.5ดˆ„ †Œš”˜€ •Š€ฐ „ํ•ด,  Smalltalk˜ ฒฝšฐŠ” •ฝ 5ดˆ˜  ‹œ„ด 
ฒฝํ–ˆŠต‹ˆ‹ค. ด™€ ฐ™ด 32„ํŠธ˜ ™„ „ํ•œ ธฐ„–ดกœ ฒˆ—ญ˜Š” ฒˆ—ญํ˜• –ธ–ด™€  ฐ
ฒด€ํ–ฅ –ธ–ดธ Smalltalk™€˜ ‹จˆœ ฐ˜ณตฌธ ‹คํ–‰ „Šฅ€ งคšฐ ํฐ ฐจด ณด˜€Šต‹ˆ
‹ค. ด „ต ณดณ  ‹คงํ•˜Š” —ฌŸฌ„ด „‹œ‹คฉด, —ฌŸฌ„ด Smalltalk—  Œ€ํ•ด„œ 
–ดŠ   •„  •Œ•„ฐˆ  •ŒŒ€,  ทธ  ‹คง„  ž ‹œ   ‘–ด‘ธฐ  ถŒํ•ฉ‹ˆ‹ค.   •ง, 
Smalltalk—Š” —ฌŸฌ„ด €ธˆŒ€ ƒฐํ•˜€ ชปํ–ˆ˜ ˆœˆ˜ ฐฒด€ํ–ฅ˜ ›ฆฌ€ ˆจ‰ฌ
ณ  žˆœฉฐ, ดฒƒ€ —ฌŸฌ„˜ ฌดฅธชจ ฐœฐœ ธฐ ํฌฒŒ ‹จถ•‹œœ „ ฒƒž…‹ˆ‹ค. ด 
‹จˆœํ•œ ‹คํ—˜ •Œฌธ— Smalltalk— Œ€ํ•œ  ณต€ ค‘‹จํ•˜‹ ‹คฉด, —ฌŸฌ„€ ํฐ  ฒƒ„
–ป„ ˆ˜ žˆŠ” ธฐํšŒ žƒŠ” ฒƒดณ ,  ‹ค‹œ ํ•œ ฒˆ ง”€ “œฆฝ‹ˆ‹ค. (ก   ํ•„ž„ 
ฒ˜Œ ด ‹คํ—˜„ ํ•ด ณดณ  Smalltalk˜ Šฆฐ †„— € ‹คง„ ํ–ˆ€งŒ, Smalltalk
—Š” —ฐ ‹คฅธ –ธ–ด€  œณตํ•˜€ ชปํ•˜Š” SmalltalkงŒ˜ ทธ ฌด—‡ด ˆจ–ดžˆŠต‹ˆ‹ค. 
„ช…ํžˆ!) 

•„šธŸฌ, œ„˜ ˜ˆ™€ ฐ™ด ‹จ ธ ฒฝšฐŠ” ‹ค œ ํ”„กœทธž˜ฐ—„œ ํžˆ “œฌธ ด
Š” ฒƒ„ ฐธณ กœ  ง”€ “œฆฝ‹ˆ‹ค.  Smalltalk˜ †„  •Œฌธ— ‹คงํ•˜‹ค  „ดฉด 
PowerBuilder ‚ฌšฉํ•˜—ฌ  œ„˜ ˜ˆ œ  งŒ“ค–ด ณด‹œธฐ  ถŒํ•ฉ‹ˆ‹ค. ˜ํ•œ  ํ˜„žฌ 
SmalltalkŠ” ‹คํ–‰ †„ ฐœ„ ํ•˜ธฐ œ„ํ•˜—ฌ งŽ€ —ฐตฌ€ ดฃจ–ด€ณ  žˆ‹คŠ”  ฒƒ„ 
ฐธณ กœ ง”€“œฆฝ‹ˆ‹ค.  –ด„ ‹คํ–‰ †„˜ ฌธ œ— žˆ–ด„œ SmalltalkŠ” JAVA™€ ฐ™
€ ฌธ œ •ˆณ  žˆ‹คณ  ณด‹œฉด ดํ•ด€   ฒƒž…‹ˆ‹ค. 


3. SmalltalkŠ” ฐฐšฐธฐ –ด ต‹ค
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ด ง€ ํ‹€ฆฐ งž…‹ˆ‹ค. Smalltalk˜ –ธ–ด ช…„žฒดŠ” ทธ ด„—„œ  งํ•ด“ด 
งคšฐ ž‘œฉฐ, ”ฐ„œ C++‚˜ Java–ธ–ด™€ ฐ™ด –ธ–ด ช…„™€ ฌธฒ•ด ณตžกํ•œ  –ธ–ด— 
„ํ•ด ตํž ฒƒด ํžˆ  Šต‹ˆ‹ค. ด ‚ฌ‹ค€ „กœ †€šธ ฒƒด —†Š”ฐ, Smalltalk 
–ธ–ด „„ํ•œ Xerox‚ฌ˜ —ฐตฌ›“ค€ •„ด“คด ‰ฝฒŒ ฐฐ›Œ„œ ‚ฌšฉํ•  ˆ˜ žˆณ ,  ‰ฝ
ฒŒ ํ”„กœทธž˜ฐ„ งค ˆ˜ žˆŠ” ‹œŠคํ…œ„ ฐœฐœ„ ›ž˜ ชฉํ‘œกœ ‚ณ  žˆ—ˆธฐ •Œฌธž…‹ˆ
‹ค. ‹ค œกœ Smalltalk –ธ–ด ณต€ํ•œ € ‘ ‹ฌด ˜Š” ดˆ“ํ•™ต 5ํ•™…„ ํ•™ƒด ํ—ฌ
ฆฌฝฅํ„‹œฎฌ ˆดํ„  œž‘ํ–ˆ‹คŠ” ‚ฌ‹คด Smalltalk  ‹œŠคํ…œด งคšฐ ’ต‹คŠ” ฒƒ„ 
ฆช…ํ•ด ค‹ˆ‹ค(›”„ งˆดํฌกœ†Œํ”„ํŠธ,  •ณด‹œŒ€).

ดŸฐ ˜คํ•ดŠ” •„งˆ ‹คŒ˜ ‘ €€ ˜—ญ—„œ ธฐธํ•œ ฒƒœกœ ƒฐฉ‹ˆ‹ค.

šฐ„ , Smalltalk –ธ–ดŠ” กœ ‚ฌšฉ˜Š”  –ธ–ด“ค— „ํ•ด„œ งคšฐ ‹คฅด‹คŠ”  ฒƒž…‹ˆ
‹ค. C++‚˜ Java™€ ฐ™ด –ธ–ด ช…„™€ ฌธฒ•ด งคšฐ ณตžกํ•˜—ฌ, ทธฒƒ„ ตํžˆŠ”ฐ ƒ
‹ํ•œ ‹œ„„ †Œ„ํ–ˆ˜ ‚ฌžŒ“ค€ ช‡ €€„ •ˆ ˜Š” ฐœ…œกœ ดฃจ–ด„ Smalltalk
˜ „ฒฐํ•œ ฌธฒ•—  ‘ํ•˜ธฐ€ –ด คšธ ˆ˜„ žˆ„ ฒƒž…‹ˆ‹ค. Smalltalk –ธ–ดŠ” "ฐ
ฒด—ฒŒ €‹œ ‚ดฆฌฉด, ฐฒดŠ” ทธ €‹œ— ”ฐ ฐ˜‘ํ•œ‹ค"Š” ฐœ…„ ํ† Œ€กœ  ฌธฒ•
„ ํ˜•„ํ•ด ‚˜•„ฐ‘‹ˆ‹ค. ฆ‰ ‹คฅธ –ธ–ดฒ˜Ÿ ฌธฒ•„ ทœ •ง“Š” ฒƒด •„‹ˆ,  ฐฒด—
ฒŒ ณด‚ดŠ” €‹œ€ ž—ฐํžˆ Smalltalk˜ ฌธฒ•„ ดฃจŠ” ฒƒž…‹ˆ‹ค. ดŠ” ํก‚ฌ  ธ„
˜ –ธ–ด ฒด„™€ „Šทํ•˜‹คณ  ํ•  ˆ˜ žˆŠต‹ˆ‹ค. (ฌธฒ•ด  € ƒธด ฒƒด •„‹ˆ ง
„ ํ•˜‹ค ณด‹ˆ ธฐ„œ ฌธฒ•ด ํ˜•„œ ฒƒž…‹ˆ‹ค.)
”šด Smalltalk –ธ–ด˜ ฐ”ํƒ•€(source code)„ ณดฉด ‹คฅธ –ธ–ด“ค ทธ  ชจ–‘ด
งคšฐ ‹ค„„ •Œ ˆ˜ žˆŠต‹ˆ‹ค.(<ฐ”ํƒ•€ 1> <ฐ”ํƒ•€ 2> „ตํ•ด ณด‹ญ‹œ˜ค) ทธŸฌ
‚˜ ชจ–‘ด ‹คฅดธฐ •Œฌธ— –ด ตฒŒ ณด ฟž…‹ˆ‹ค. ‹ค œกœ Smalltalk˜ ช‡ €€ ฐœ
…„ •Œณ  ‚˜ฉด ฐ”ํƒ•€„ งคšฐ ‰ฝฒŒ ฝ„ ˆ˜ žˆŠต‹ˆ‹ค.

Smalltalk€ –ด ต‹คณ  Šปด€Š” ดœ  ค‘ €žฅ ํฐ ฌธ œŠ” Smalltalk€ €€ณ   žˆ
Š” ฐฉŒ€ํ•˜ฉด„œ„ ํ™•žฅ„ด ›ฐ–ด‚œ ฐˆž˜ ‹คฐœ(class library)•Œฌธด •„‹Œ  ํ•ฉ‹ˆ
‹ค. Smalltalkกœ “ธงŒํ•œ ํ”„กœทธžจ„ งŒ“คธฐ œ„ํ•ด„œŠ” ํ•„š”กœ ํ•˜Š” ธฐŠฅด ˆ˜ฐœ
€ „˜Š” ฐฉŒ€ํ•œ ฐˆž˜ ค‘—„œ „Œ€ฒด –ด–ค ฐˆž˜— †ํ•ด žˆŠ”€— Œ€ํ•ด„œ ฟฐณ  žˆ
–ด• ํ•˜Š”ฐ, ดฒƒด ฐ˜ œกœ ํ”„กœทธž˜ฐ˜ ดˆณดž€  •ง „˜ธฐ ํž˜“   'žฅฒฝ'
ด ˜–ด„ฆฌŠ” ฒƒž…‹ˆ‹ค. Smalltalk ‚ฌšฉํ•ด„œ  € œ ช…ํ•œ "Hello, world!" ถœ
 ฅํ•˜Š” ™„ „ํ•œ ํ”„กœทธžจ„ งŒ“คณ  ทธฒƒ„ ดํ•ดํ•˜ คฉด –ดŠ  •„˜ ‹œ„ด ํ•„š”ํ•ฉ
‹ˆ‹ค. ทธŸฌ‚˜ Smalltalk—„œ Hello World ํ”„กœทธžจ„ งŒ“ค ˆ˜ žˆ‹คฉด, ทธ ‹คŒ€ 
 •ง ‰ฝฒŒ ‰ฝฒŒ „˜–ดฐˆ ˆ˜ žˆŠต‹ˆ‹ค. C –ธ–ด˜ ฒฝšฐ, Hello World ํ”„กœทธžจ„ งŒ
“คธฐŠ” ‰ฝ€งŒ, ดฒƒงŒ €€ณ Š” C –ธ–ด—„œ ณต€ํ•ด• ํ•  ธฐŠฅ ค‘— 10%„ •ˆ ˜
Š” ‚ดšฉฐ–— •Œ ˆ˜ —†Šต‹ˆ‹ค. Smalltalk—„œ Hello World ํ”„กœทธžจ„ งŒ“คณ   ทธ
ฒƒ„ ดํ•ดํ–ˆ‹คฉด, Smalltalk –ธ–ด˜ 80% ดƒ„  •ณตํ–ˆ‹คณ  ํ•ด„ –ธด •„‹ ฒƒ
ž…‹ˆ‹ค.

ทธŸฐฐ ฐˆž˜ ‹คฐœ„  ตํžˆŠ” ฒƒด  –ด ค›Œ„œ Smalltalk€  –ด ต‹คฉด, ดŠ”  C++, 
Java ทธฆฌณ  ‰ฝ‹คณ  —ฌฒจ€Š” Delphi‚˜ Visual Basic„ ณต€ํ•˜Š” ฒƒ —ญ‹œ –ด ต‹ค
ณ  ด•ํ•ฉ‹ˆ‹ค. Visual C++ €€ณ   ํ”„กœทธžจ„ งœ คฉด  –ด„ MFC(Microsoft 
Foundation Classes)Š”  ฐˆž˜ ‹คฐœ„  ตํ˜€•  ํ•˜ณ , Delphi˜  ฒฝšฐ—Š” VCL 
(Visual Component Library)„ ณต€ํ•ด• ํ•˜ฉฐ, Java˜ ฒฝšฐ„Š” JavaBeans‚˜  —ฌ
Ÿฌ €€˜ พธŸฌธ(package)— Œ€ํ•ด„œ –ดŠ  •„˜ €‹ด ํ•„š”ํ•ฉ‹ˆ‹ค.

งˆ€ง‰œกœ, Smalltalk ‹œŠคํ…œ€ Œ€ํ™”‹ž…‹ˆ‹ค. ˜ˆ „— ฒ ด‹„ ณต€ํ•ด ณธ „ด
ฉด Œ€ํ™”‹ ฐœฐœ ฐฉฒ•ด –งˆ‚˜ ‰ฌšด€ •Œ ฒƒž…‹ˆ‹ค. Smalltalk—„œŠ” ช… –ด
 ํ•œ „ ‹จœ„กœ ‹คํ–‰‹œœ ˆ˜ žˆœฉฐ, ทธ ฒฐ ฐ”กœ •Œ ˆ˜ žˆŠต‹ˆ‹ค. ปดํ“จํ„™€ Œ€ํ™”ํ•˜“ด –ด–ค „ ฒ˜ฆฌํ•  ˆ˜ žˆธฐ •Œฌธ—, ตํžˆธฐ€ งคšฐ ‰ฝŠต‹ˆ‹ค. ทœ •
œ ฌธฒ•— ˜ํ•ด ฐ”ํƒ•€„ “ฐณ  ทธฒƒ„ ฒˆ—ญ(compile)ํ•˜—ฌ ‹คํ–‰ํ•ด•งŒ ฒฐ  –ป
„ ˆ˜ žˆŠ” –ธ–ด“ค— „ํ•ด„œ, Smalltalk˜ ฒฝšฐ—Š” Œ€ํ™”‹œกœ ช… –ด ˆ˜ํ–‰ํ•  
ˆ˜ žˆŠ” –ธ–ดดธฐ •Œฌธ— ํŠํžˆ ดˆณดž“คด  ฐฐšฐธฐ€ งคšฐ ‰ฝ‹คณ  ํ•  ˆ˜  žˆŠต‹ˆ
‹ค. •ž„œ ง”€“œ ธ€งŒ, Smalltalk˜ ชจํ† Š” "–ดฆฐ•„ด“ค„ ‰ฝฒŒ ํ”„ณ ทธžจ„  งค 
ˆ˜ žˆŠ” ํ™˜ฒฝ„ งŒ“คž"Š” ฒƒž…‹ˆ‹ค. (ก  ทธ '–ดฆฐ•„ด'€ ˜–ดถŒ—  ตˆ™ํ•ด• 
ํ•œ‹คŠ” ฒƒด งˆŒด •„ํ”•‹ˆ‹คงŒ...)

ดŸฐ ฒƒ“ค„ ณต€ํ•˜ฉด„œ ™‹œ— ณตžกํ•œ –ธ–ด ช…„ ณต€ํ•˜Š” ฒƒ, ‹จˆœํ•œ –ธ–ด 
ช…„™€ Œ€ํ™”‹ ฐœฐœ €›ํ•˜Š” Smalltalk ณต€ํ•˜Š” ฒƒ ค‘—, —ฐ –ด–ค  ฒƒด 
” –ด ค›Œ ณดŒš”? ทธฒƒ€ …ž —ฌŸฌ„˜ ํŒ‹จ— งž‹ˆ‹ค.


4. Smalltalk€ „‹ธ‹ค
~~~~~~~~~~~~~~~~~~~~~
ดŠ” •„ „‹จํ•˜ฒŒ ˜ˆ “ค ˆ˜ žˆŠต‹ˆ‹ค. ณตฐœšฉ Smalltalk ‹œŠคํ…œด งŽด ‚˜™€ 
žˆœฉฐ, Dolphin Smalltalk˜ ฒฝšฐ—„ ƒšฉ  œํ’ˆ ณตฐœšฉ  œํ’ˆ„ ฐ™ด  ‚ด†“ณ  
žˆŠต‹ˆ‹ค. ˜ํ•œ Dolphin Smalltalk ƒšฉํŒ˜ ฒฝšฐŠ” •ฝ $50  •„˜ €ฒฉœกœ  ถฉ
„ํžˆ ตฌž…ํ•  ˆ˜ žˆœฉฐ, ฐดํ„ฒ ดŠค‚˜ ‘šฉ ํ”„กœทธžจ ฐฐํฌ “˜ ธฐŠฅ„ ํฌํ•จํ•œ 
พธŸฌธ ํ˜•ํƒœกœ ํŒงค˜Š”  œํ’ˆ˜ ฒฝšฐ $219  •„˜ €ฒฉดฉด ถฉ„ํžˆ ตฌํ•  ˆ˜ žˆŠต
‹ˆ‹ค. Smalltalk€ „Œ‰‹ˆŒ?


5. SmalltalkŠ” ํฌ‹ค
~~~~~~~~~~~~~~~~~~~
SmalltalkŠ” ด„ žฒด€ ด งด ‚ฌ‹คด •„‹˜„ ฆช…ํ•ด ค‹ˆ‹ค.  SmalltalkŠ” 
ž‘€ ‹œŠคํ…œž…‹ˆ‹ค. ดŠ” žฅ ด   ˆ˜„ žˆณ  ™‹œ— ‹จ ด   ˆ˜„ žˆŠต‹ˆ‹ค.

ANSI X3J20ํ‘œ€— ˜ํ•ด ทœ •œ ฐˆž˜ ”ป„(class hierarchy)€  ํ”ํžˆ  ˆ˜ žˆŠ” 
‹คฅธ ฐฒด €ํ–ฅ –ธ–ด˜ ฐˆž˜ ‹คฐœณด‹ค ” งŽ€ ฒƒ„ ‹ดณ  žˆŠต‹ˆ‹ค. C++˜ ฒฝšฐ 
ANSI—„œ ํ‘œ€ํ™”œ ฐˆž˜ ‹คฐœ€ ธฐณธ ธ ฒƒ“ค ฟดณ  Œ€€„ C++ งŒ“ค–ด ํŒŒŠ” 
ํšŒ‚ฌงˆ‹ค …ž ธ ฐˆž˜ ‹คฐœ„ งŒ“ค–ด ‚ฌšฉํ•˜ณ  žˆœฉฐ, ”ฐ„œ ดŠ” ํ”ํžˆ งํ•˜
Š” ฒƒฒ˜Ÿ ํ˜ธํ™˜„ ข‹€ C++ žพธ ํ˜ธํ™˜„ —†Š” –ธ–ดกœ งŒ“œŠ” š”ธด ˜ณ  žˆŠต
‹ˆ‹ค(Visual C++˜ MFC™€ Borland C++˜ OWL„ ƒฐํ•ด ด…‹œ‹ค.) ANSI ํ‘œ€„  ”ฐ
ฅดŠ” Smalltalk˜ฒฝšฐŠ” ธฐณธ œกœ ฐฉŒ€ํ•œ –‘˜ ฐˆž˜ ‹คฐœ„ €€ณ  žˆ€งŒ, ด
Š” ดธ ํ‘œ€ํ™” œ ฒƒดธฐ •Œฌธ— Smalltalk˜ ํ˜ธํ™˜„„ †’—ฌŠ” ด‰งค œ€ ฉ‹ˆ
‹ค.

ดŸฌํ•œ ฐฉŒ€ํ•œ ฐˆž˜ ‹คฐœด ํ‘œ€ํ™”จœกœจ ƒฒจ‚˜Š” ‹จ œกœŠ” Smalltalkกœ ํ”„
กœทธžจ„ ฐœฐœํ•  •Œ, Smalltalk ํ™˜ฒฝ žฒด€ ฐฉŒ€ํ•ดงˆ ˆ˜ žˆ‹คŠ” ฒƒ„ “ค ˆ˜ žˆ
Šต‹ˆ‹ค. ก  ‹ค œ ‘šฉ ํ”„กœทธžจ„ ฐฐํฌํ•  •Œ—Š” ฐœฐœ ‹จ„—„œณด‹คŠ” ํ›จ”ฌ ž‘
€ ํฌธฐกœ ฐฐํฌ€ €Šฅํ•˜€งŒ, ํ˜„žฌ˜  Smalltalk ตฌํ˜„ ธฐˆ กœŠ” •„งŒ€  ‹คฅธ 
–ธ–ดกœ งŒ“ค–ด„ ํ”„กœทธžจ“คณด‹คŠ” ธฐ–ต ณต„˜ †Œ„€ ํฌ‹คŠ” ‹จ „ €€ณ  žˆ
Šต‹ˆ‹ค. 

ทธŸฌ‚˜ Dolphin Smalltalk˜ ฒฝšฐŠ” ณดํ†ต ตฌํ˜„˜Š” Smalltalk˜ ํŠ„ณด‹ค ํ•œ  ‹จ
„ ฐœ „œ ธฐˆ „ ‚ฌšฉํ•จœกœจ, ‹คํ–‰ ํŒŒด ฐจ€ํ•˜Š” ธฐ–ต ณต„˜  œ œจ„ งค
šฐ ‚ฎฒŒ ํ•  ˆ˜ žˆ—ˆœฉฐ, ดŠ” Dolphin Smalltalk€ ‹คฅธ Smalltalk— „ํ•ด„œ ›”
“ํ•œ „Šฅ„ ณดžฅํ•  ˆ˜ žˆ„ก ํ•ด €‹คณ  ํ•ฉ‹ˆ‹ค. 

ธฐ–ตณต„ †Œ„€ ‹ฌํ•˜‹คŠ” ํ‰€— Œ€ํ•ด„œ, Delphi‚˜ Visual Basic˜ ฒฝšฐ™€ „ต
ํ•ด ณด‹ญ‹œ˜ค. ž› ธก •ธฐ  œ †“€ ƒํƒœ—„œ Delphi  4.0„ ‹คํ–‰ํ•  ฒฝšฐ, •ฝ 
10%  „ํ›„˜ ž›„ †Œ„ํ•˜ฉฐ, ดŠ” ฐœฐœ ํ”„กœทธžจด ปค€ฉด ปคงˆˆ˜ก ”š ” งŽ
ด †Œ„ํ•˜ฒŒ ฉ‹ˆ‹ค. (ํ”„กœ ํŠธ— ”ฐ„œŠ” •ฝ 30%˜ ž›„ †Œ„ํ•  •Œ„ žˆ—ˆŠต
‹ˆ‹ค.) ทธŸฌ‚˜ Dolphin Smalltalk˜ ฒฝšฐ—Š” ธฐณธ œกœ •ฝ 3%˜ ž›„ †Œ„ํ•ฉ
‹ˆ‹ค. ดŠ” ดชจ“  ฐˆž˜ ‹คฐœ ฐฒด“คด ‹ค ƒ„œ ƒํƒœ—„œ ฐจ€ํ•˜Š” ธฐ–ต
ณต„˜  œ œจž…‹ˆ‹ค. (ณดํ†ต ฐฐํฌ˜Š” Dolphin Smalltalk—Š” •ฝ 540ฐœ˜ ฐˆž˜™€ 
45,000—ฌฐœ˜ ฐฒด€ “ค–ดžˆŠต‹ˆ‹ค.)

–ดฐŒณดฉด SmalltalkŠ” ํฝ‹ˆ‹ค. ทธŸฌ‚˜ ˜ํ•œ ž‘Šต‹ˆ‹ค. ํฐ ฒƒด ฌดกฐ‹จ ด   
ˆ˜งŒ€ —†Š” ฒƒž…‹ˆ‹ค. ทธŸฐฐ,  •ง Smalltalk€ ํฝ‹ˆŒ? ทธŸฐ€ ทธ ‡€ •Š€€
Š” —ฌŸฌ„ด ง ‘ Smalltalk šฐํ•ด ณดฉด •Œ ˆ˜ žˆ„ ฒƒž…‹ˆ‹ค.


6. SmalltalkŠ” —ฐตฌšฉ –ธ–ดด‹ค
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
•„งˆ ด ฌธ œŠ” Smalltalk –ธ–ด€  ฐœฐœœ ณณด Xerox —ฐตฌ†Œดฉฐ, ”ฐ„œ  ƒšฉ 
ฒˆ—ญธฐ ฐœฐœ ํšŒ‚ฌ“คด ‚ด†“Š” ฒƒณด‹คŠ” ‚ฎ€ ‹คํ–‰ †„ •Œฌธ— ธฐธํ•œ  ฒƒดณ  
ƒฐํ•ฉ‹ˆ‹ค. ํ”ํžˆ Delphi‚˜ Visual Basic, C++ “œกœ Windows šฉ˜ ‘šฉ ํ”„กœทธ
žจ„ งŒ“ค คณ  ํ•  •Œ งคšฐ †’€ ‹œŠคํ…œ ‚ฌ–‘ด ํ•„š”ํ•ฉ‹ˆ‹ค. ทธŸฌ‚˜  SmalltalkŠ” 
ทธ ‡€ •Š‹คณ  •ž„œ„ –ธธ‰ํ•œ ฐ” žˆŠต‹ˆ‹ค. ˜ํ•œ Smalltalk€ ฐœฐœ  •Œ  ›ž˜€„‚ฌšฉž   ธํ„ฐํŽ˜ดŠค ƒ„ํ•˜Š”   ฐฉฒ•ด  งˆ จ˜–ด   žˆ—ˆœฉฐ,  ˜ˆ „—Š” 
Smalltalk šด˜ฒด„กœ “ฐŠ” ปดํ“จํ„„ žˆ—ˆŠต‹ˆ‹ค. ”šด Dolphin Smalltalk˜ 
ฒฝšฐ—Š” WIN32 API 90% ดƒ €›ํ•ฉ‹ˆ‹ค. ”ฐ„œ ‘šฉ ํ”„กœทธžจ„ งŒ“œŠ”ฐ„ 
ฒฐฝ” ‹คฅธ ฐœฐœ ํ™˜ฒฝ— „ํ•ด„œ ’ค–จ–ด€€ •ŠŠต‹ˆ‹ค.


7. š”•ฝ
~~~~~~~
Smalltalk, ํŠํžˆ Dolphin SmalltalkŠ” ‹คŒ„ €›ํ•ฉ‹ˆ‹ค.

* Dolphin SmalltalkŠ” ํ•™Šตด‚˜ ‹ค œ  ‘šฉ ํ”„กœทธžจ„ ฐœฐœํ•  ˆ˜ žˆŠ”  ณตฐœšฉ 
  Smalltalk ฐฐํฌํ•ฉ‹ˆ‹ค. ด œŠ” ฐœฐœ  ํ™˜ฒฝ˜ ตฌž… €ฒฉ •Œฌธ— ง„ดŠ”  
  ด —†„ ฒƒž…‹ˆ‹ค.
* ƒŒ€ œกœ ž‘€ Smalltalk˜ ฐœฐœ  ํ™˜ฒฝ€ ‚ฎ€ ‚ฌ–‘˜ ปดํ“จํ„—„œ„  ถฉ„ํžˆ
  ‘šฉ ํ”„กœทธžจ„ ฐœฐœํ•  ˆ˜ žˆ„ก ํ•  ˆ˜ žˆ„ ฒƒž…‹ˆ‹ค.
* ANSI X3J20—„œ Smalltalk˜ ํ‘œ€„  •ํ•˜ณ  žˆœฉฐ, SmalltalkŠ” C++™€ ”ถˆ–ด 
  ‚ฐ—… ํ‘œ€ด ˜–ด€ณ  žˆŠต‹ˆ‹ค.
* Dolphin Smalltalk—„œ   œณตํ•˜Š” '3„ธต ‘šฉ  ํ”„กœทธžจ ชจํ˜•'(three  tiered 
  application framework)€ ํ”„กœทธžจ„ งคšฐ œตํ†ต„žˆฒŒ งŒ“ค–ด ค‹ˆ‹ค.
* Dolphin   SmalltalkŠ” Windows  ‹œŠคํ…œ˜ ชจ“    ž›„ ‚ฌšฉํ•   ˆ˜ žˆœฉฐ, 
  Windows šด˜ ฒด„˜ €›„ ฐ›„  ˆ˜ žˆŠต‹ˆ‹ค. ดŠ” WIN32 API˜ ‚ฌšฉ„ ณด
  žฅํ•ดฉฐ, ”ฐ„œ WIndows ‘šฉ ํ”„กœทธžจ˜ ฐœฐœ„ ‰ฝฒŒ ํ•ด ค‹ˆ‹ค.

ด œ Smalltalk ํ•œ ฒˆ ณต€ํ•ด ณด‹ญ‹œ˜ค. ž‘ฒŒŠ” —ฌŸฌ„˜ ฐฒด€ํ–ฅ ํŒจŸฌ‹คž„„ 
ตํžˆŠ” „ตฌกœจ, ํฌฒŒŠ” ‹ค œ ํ”„กœ ํŠธ ฐœฐœํ•  ˆ˜ žˆŠ” „ตฌกœจ,  Smalltalk
Š” —ฌŸฌ„—ฒŒ  ํฐ ชซ„  ํ•  ฒƒž…‹ˆ‹ค.  žฃŒ‹ค— ˜ฌ ค„  Dolphin  Smalltalk™€ 
Dolphin Education Center ‚ดฆฌฐ›ณ  Smalltalk ณต€ ‹œž‘ํ•ด ณด‹ญ‹œ˜ค.  ทธฆฌ
ณ  šฐฆฌ ํ•จป˜ ณต€ํ•ฉ‹œ‹ค. ทธž˜„œ Smalltalk˜ žฃŒ€ ” ดƒ ˆ•ฝํ•˜€  •Š„ก 
ํ•ฉ‹œ‹ค.

•„ฃฐกœ ํ•„žŠ” Smalltalk„ ํ•˜‚˜˜ „ตฌกœ ƒฐํ•ฉ‹ˆ‹ค.  €Š” Delphi กœ ‚ฌšฉ
ํ•˜Š”ฐ, Smalltalk ณต€ํ•˜ฉด„œ ธํŒŒด ฐ”ณดŠ” ‹œฐด ฐ”€Œ—ˆŠต‹ˆ‹ค. € ”
งˆ„œžˆณ , €ฆฌํ•˜ธฐ ‰ฌšด ฝ”“œ “ธ ˆ˜ žˆฒŒ ˜—ˆŠต‹ˆ‹ค. ฐฒด €ํ–ฅด ฌด—‡ธ€, 
 •ง „ •ํ•œ ฐฒด€ํ–ฅ˜ „ˆ˜ ง›ณดณ  ‹ถœ‹œ‹คฉด, Smalltalk ถŒํ•ด“œฆฝ‹ˆ
‹ค. ฐ™ด ณต€ํ•ฉ‹œ‹ค.
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:03
Processing time 0.0629 sec