~cpp
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
목:[] Smalltalk 배 #2 료:
보낸:() 1998-11-23 10:40 :392 1/34
───────────────────────────────────────
Smalltalk 배 #2
1998. 11. 22.
mailto:andrea92@hitel.net
======================================
1. Smalltalk
1.1. 램 밍
→1.2. Smalltalk
1.3. Smalltalk 맛보 램
........
=======================================
1. Smalltalk
------------------------------
───────────────────────────────────────
1.2. Smalltalk
~~~~~~~~~~~~~~~~~~~~~
Smalltalk를 램 는 러
Smalltalk . 리들 Object Arts
Dolphin Smalltalk를 므, 료 Dolphin Smalltalk를 내
리받.
Dolphin Smalltalk는 Smalltalk 배
. Dolphin Smalltalk 1.1 며, 2.1 .
료 1.1. 러므
러 마대 받 .
Object Arts 는 배 Dolphin981Setup.Exe
만, 료 명 문 WinZip
린 . 러므 Dolphin Smalltalk를
는 면 됩.
1. 료 Dolphin Smalltalk Dolphin Education Center를
내리받.
2. 내리받 zip 므 WinZip 등
는 램 .
3. 리면 는데,
. 동 림 므 면 바 면
.
4. 른 램 럼 냥 <Next> 를 르면
바 바 . 는 람면 맞
면 됩.
5. 를 마무리면 Dolphin Smalltalk 바 를 메뉴
를 묻. 러 면 .
면 됩.
문 매 를 . 면
Dolphin Smalltalk를 "램 /"를
.
Dolphin Smalltalk를 는 " → 램 → Dolphin
Smalltalk 98" 리 들는 "Dolphin Smalltalk 98"
면 됩.
---<!>-----------------------------------------------------------
Dolphin Smalltalk를 면 납
. 대 내, 는 Dolphin Smalltalk는 등
를 문 램 를 는
. 능 면 Object Arts 무료 배부는 등
번를 받 는데, 는 뒤 명.
--------------------------------------------------------------------
1.3. Smalltalk 맛보 램
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Smalltalk 를 마므 Smalltalk 봅
. 러면 "Transcript" "Workspace"는 목
. 모 Smalltalk 명를 는
능 . 러 리 목 'Untitled -
Workspace'는 . 는 마 "Welcome to Dolphin
Smalltalk/98"는 목 문들 들 .
문들는 러 Smalltalk 램 는데 ,
리 Smalltalk 밍 대 미를 느 막 Smalltalk
램들 . 는 들 는 Smalltalk
램 를 보는 방 , Smalltalk
명 방 Smalltalk 밍 를 느
.
러 보 는 Workspace를 "" 부릅. 는 러
Smalltalk 명 내리, 미 만들 램 를
는 . 는 '메모' '' 동 방
. 는 문 동 방
는 말.
러 마대 며, 덩(block)를 번
러 들 복 는 동 .
른 , 는 Smalltalk 명들 들, 명
는 .
마 밀대(scroll bar)를 문
보 면 말 내리.
----------------------------------------------------------
"First evaluated by Smalltalk in October 1972, and by Dolphin in
February 1995. With a bit of luck the answer will be 7."
3 + 4.
----------------------------------------------------------
보는 문 Smalltalk 는 명.
른 문들 Smalltalk 명 떤 방 는 , 리
를 떻 낼 는 대 명 .
, 부 리는 Smalltalk 명 내보 . 방 를
를
3 + 4.
는 동. '.' 바 뒤 를 는 .
<Ctrl-D>를 르. 리 면 봅.
놓 리 덩(block) "7"는 났.
3 + 4. 7
덩 러 "7" 방 리 명
. "3 + 4"는 명 더 "7"는 는 말
.
럼 Smalltalk는 명 면 덩
납. 따 바 <Delete> <Back
Space>를 덩를 면, 덩 명
는 .
방 리 명 1972 10 Smalltalk
내 명 . Object Arts는 1995 2 Dolphin
Smalltalk 명 는.
명 례.
200 factorial.
문 를 놓, <Ctrl-D> 를
명 봅. 떻 ?
200 factorial.
788657867364790503552363213932185062295135977687173263294742533244359
44996340334292030428401198462390417721213891963883025764279024263710506
19266249528299311134628572707633172373969889439224456214516642402540332
91864131227428294853277524242407573903240321257405579568660226031904170
32406235170085879617892222278962370389737472000000000000000000000000000
0000000000000000000000
러 200!, 200 . 말 마마 릿
. 대 ? 마 C++ Java
본 는 능만 를 면 노
.
---<!>----------------------------------------------------------
?
(階, factorial)란 n , 1 n 모
n 대 는 말(, 1994, 리말).
를면 5!는 5x4x3x2x1, 120 는 .
----------------------------------------------------------
럼 Smalltalk 200! 는데 마 릴? 바
명 면 를 . <Ctrl-D>를 .
Time millisecondsToRun: [200 factorial]. 1
! 200! 는데 1ms 밖 리 는 러는.
1ms는 1000 1므, 매 른 200! 는
.
더 밀 . 명 보. (
명 는 명 를 <Ctrl-D>
를 른는 ?)
Time microsecondsToRun: [200 factorial]. 1024
명 200! 는데 린 100만 1 는 명
. 는 1024㎲ . 물 러
는 를 . 는
문 명 는 매 민 .
러 . 면 Smalltalk는
100만 1 명 는
.
Smalltalk 내부를 번 들보. Smalltalk 는 많
(object) 며, 들 는 마 (class)
. 명 면 Smalltalk 떤 들
는를 눈 .
Class allClasses asSortedCollection.
a SortedCollection(_FPIEEE_RECORD AbstractCardContainer
AbstractToTextConverter ACCEL AcceleratorPresenter AcceleratorTable
....(략)....
DWORDBytes DWORDField EDITSTREAM ... etc ...
번 많 면 . 런데 맨 마막 보
. "... etc ..." 났. 는 면 보
더 많 는 말. 방 명 를
대 보 . 랬? 바
들 냥 놓 문.
본 럼 Smalltalk 떤 명 뒤는
남. 는 "3 + 4." 를 남는
만 럼 복 를 남는 많.
복 를 더 보 , 는 른 명
명 방 .
내린 명 번 더 봅. 명 를 놓
<Ctrl-I>를 르. <Ctrl-D> <Ctrl-I>는
.
Class allClasses asSortedCollection. "Inspector 림"
떻? "Inspecting a SortedCollection"는 목 면
났. " "(object inspector),
""(inspector) 부릅.
는 self부 몇 목들 며, 는 1,
2, 3,...럼 번 매 . 리 른는
목 를 는 부 . 는 "self"는 목
, 른는 방 리 <Ctrl-D> 명
났 .
른 목들 내, 1, 2, 3,...럼 번 매 목들
봅. 러면 목 낱말 른 보 .
Smalltalk 는 (class). 맨 마
막 목 몇 번? 는 567. 말,
Smalltalk 는 500 는 는 말. 들
번 보면 는 는 를 .
명를 봅. 명 Smalltalk 대 몇
(object)들 는를 보. <Ctrl-I>를 말
<Ctrl-D> .
Object allSubinstances size. 44121
는 44121 보. 러
는 른 모르만, 돌 는
Smalltalk 4만 는 들 맡 바 무를
면 돌 .
'' '' 는 말 ? 부 명 미를
? . Smalltalk를 부
면 문. Smalltalk
명 를 보는 방만 맞.
리는 몇 Smalltalk 명 보.
Smalltalk 명 는 방 대 본
리 .
1. 명 를 놓는.
2. <Ctrl-D>를 면 명 .
3. 복면 <Ctrl-I>를 ""
를 를 볼 .
리 ? 는 들
. 리 부 번 따면 명
봅.
, 럼 명 보.
<바 1> 디
digitalClockProcess := [[
Processor sleep: 1000.
(DesktopView current canvas)
font: (Font name: 'Arial' pointSize: 36) bold;
text: Time now printString at: 10@10;
free
] repeat] fork.
----------------------------------------------------------
리는 리 Smalltalk 명 보. 런데
<바 1> 루 명. 명 럼 떻
?
방 . 모 덩를 . 덩를 는
방
1. 마를 끌 덩를 는 방.
2. 명 를 놓, <Shift>를 르면 방 를
는 방
등 . 러 리 바랍
. 빼놓 말 덩를
는 .
덩를 면 는 럼 <Ctrl-D>를 명
보. 떻 ?
<바 1>
a Process(a CompiledExpression, priority: 5, state: #ready)
덩를 <Ctrl-D>를 르마 를 뿌리면
면 막 는 볼 .
는 리 른 림 더 림
리 납. 막 말. <바
1> 디 를 만들 면 보는 램.
만 막 면 는 불
. , 리 방 디 를
. 명 . 리 명므 덩를
는 . 냥 명 를 놓 <Ctrl-D>를 눌러보.
digitalClockProcess terminate. ¬
UserLibrary default invalidate: nil lpRect: nil bErase: true.
true
※ '¬' 는 는
문 낸 미.
러므 는 바
냅.
명 면 는 'true'를
받 됩.
리는 명 보. 는 <바 1>
면 를 보는 명, 머 는 동 는 를 멈
는 명. 런데 명 뒤 는
무? 리는 모 는 .
리는 를 보 는 , 명
뒤 떤 를 는는 .
럴 Smalltalk 명 는 번 방 .
바 <Ctrl-E> . 명를 보는 를
면 .
리 방 <바 1> "UserLibrary" 는 명, 번
는 <Ctrl-D> 대 <Ctrl-E>를 보. 끔
는 볼 .
, 번 리. Smalltalk 명 는 방...
---<리>----------------------------------------------------------
Smalltalk 명
* <Ctrl-D>: . 명 를 보.
* <Ctrl-I>: 명 복 , .
* <Ctrl-E>: 명 미 는 무 .
----------------------------------------------------------
---<른 Smalltalk>---------------------------------------
Dolphin Smalltalk 른 Smalltalk 명 방
를 . 대는 명 루는
마 명 .
----------------------------------------------------------
, 럼 Smalltalk 디 는를 봅.
명 러 듣 (wave) .
(Sound fromFile: 'xxxxx.wav') woofAndWait; woofAndWait.
'xxxxx.wav'를 바 면 됩
. 명 보는 명
므, <Ctrl-E>를 봅. 는
(Sound fromFile: 'C:\Windows\Media\Ding.wav') woofAndWait; woofAndWait.
보. 명 리
번 는 . ! Smalltalk 멀미디???
명 미 밍 를 본 람들 미 모
르. 100 를 배 만들 내는 명.
(1 to: 100) collect: [:i | i]. #(1 2 ...(략)... 99 100)
무 많? <Ctrl-D>를 말 <Ctrl-I>를
봅. (배 먹는 말 ?) 명 1
부 100 100 들 는 배(array) 만들 내는 명
. '배' 말 번 붙 '' 면 .
, 보는 Smalltalk 명 많 .
는 더 부럽 . , 봅.
면 TV 복 . 복 람들
리는 명 복
번를 배 배 '번 붙 ' 말
린 , ? .
(Random new next: 6) collect: [:n | (n * 49) rounded].
#(37 48 22 19 22 24 ) " 번 "
#(4 36 20 37 24 5 ) " 번 "
#(18 43 28 15 41 22 ) " 번 "
...(략)...
명 마 른 번를 냅. ?
러 매번 른 는 리
문.
명 만 . 끔
는 . ( 번 를 보.)
복 는 번 면 .
복 는데... 명 바 러 리를
대 . 명 므 마 덩를
.
<바 2> 복 램
r := Random new.
s := Set new.
[ s size = 6 ] whileFalse: [s add: (r next * 49) rounded].
s asSortedCollection asArray.
[
#(15 18 21 25 31 39 ) " 번 "
#(6 11 21 26 27 31 ) " 번 "
...(략)...
----------------------------------------------------------
<바 2>는 복 만 는 ,
, 를 남. 말 복
램 ?
는 들만 놀므, 번는 러 림 를 마
는 를 리. 명 <Ctrl-E>를
.
scribble := Scribble show.
면 'a Scribble'는 목 린 노란 릴 .
말 마를 끌 림 봅.
. 러 림 러?
림 . 명 번 보. 방
러 명 만들 림 .
EtchASketch showOn: scribble model.
명 면 "Etch A Sketch"는 림 릴 . 리
방 러 노란 림 림 대 납. 마
Dolphin Smalltalk를 만 는 "Etch-a-Sketch"는 림 보
봅.
면는 노란 림 Etch-aSketch . 무
러 림 리면 른 바 됩.
모 르만 료를 . Dolphin
Smalltalk 램 만는 "MVP " 를 보는
. "MVP " 대 부면 많 남만,
말 .
림 면 는 림 .
명 " "(walkback window)를 는 명.
대 루만, 는 램 떤
는를 내는 면 됩.
self halt.
명 면 " " 립. 보 냥
<Terminate> 를 르는 문 됩. 만 른
밍 를 부 본 람면 <Debug> 를
Smalltalk 벌(debugger)를 . 물
린 벌는 Smalltalk 들볼 는
. 러므 못 루는 . Smalltalk
대 느 면 벌 대 는 부
를 . 못면 동 를
러리는 는 ? ^^:
명 Smalltalk 'Dolphin'는 낱말 바
(source code)를 내는 명. 3MB 는 량 뒤
내 는 문 몇 릴 .
만 리면 'Dolphin'는 낱말 는 러 바들
.
SmalltalkSystem current browseContainingSource: 'Dolphin'.
"Containing Source: 'Dolphin'"란 붙 부 루
. 낸 바 내,
내 는 . Smalltalk Dolphin는 낱말
몇 번 며, 디 는를 번 보 바랍
. ( '바' 명 는 .)
마막 명. 리는 러 명 는데,
번 명럼 . 느 냐?
보. 명 봅.
View destroyAll.
명 마 Smalltalk 모
"Transcript"는 만 남 .
? ^^:
방 내린 명 Smalltalk 끗 는 명
. 리는 많 명 를 므 리
놀 (?) 끗 는 면 .
리는 Smalltalk 러 명 보. 리
명 떻 는 대 보. 명
는 <Ctrl-D>, <Ctrl-E>, <Ctrl-I> 를 는
보. 리 명 러 명 는 방
보.
Smalltalk 명 내리는
. 만 모르면 Smalltalk를 들
는 내 번 따 보 바랍.
Smalltalk를 내 는데, 말듯 문 남
. Smalltalk를 낼 마 Smalltalk 를 느냐
묻 됩. 등 를 밟 므 불능
. 더 모르. 는 말
러 무 를 더 Smalltalk
미 문. 러므 Smalltalk
능 보는 . 등
바 명 리 .
...