U E D R , A S I H C RSS

Small Talk/강좌From Hitel/강의2

~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  때까  
  기능   보는 것  될 것다.  
 바로 다  드리다.
                                                                 ...
Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:28:03
Processing time 0.0346 sec