:[] Smalltalk ̾߱ ڷ: [3] :ȫ (ȵ巡) 1998-11-22 01:19 ȸ:572 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 α׷ ν DZ⿡ 庮 ־ϴ. 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뿡 θ dz 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 ص帳 . սô. :[] Smalltalk #0 ڷ: [4] :ȫ (ȵ巡) 1998-11-22 03:20 ȸ:388 Smalltalk #0 1998. 11. 16. ȫ mailto:andrea92@mail.hitel.net "Smalltalk " ϸ鼭 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Smalltalk ü з ϰ ù ° α׷ ν ǹ̰ ſ ũ εǾϴ. ׷ ݵ ü з Smalltalk ̾߱Ⱑ ϴ. ׸ŭ Smalltalk ü ϰ ϰ ִ Ǵ ߿ ϳ Դϴ. ׷ ұϰ, 츮 󿡼 Smalltalk  ڷḦ ãƺⰡ ſ ƽϴ. å غ , ȣȸ Smalltalk ³ ã⵵ ſ Դϴ. ̴ 츮 C C++ Ϻ ַ  ٸ  ٷ뵵 ִٰ ϰڽϴ. C++ Java ü α׷ Դϴ. ̵  ϰ ϴ ⺻ κ ü Smalltalk ͵ ſ ϴ. Delphi Visual Basic Ǵ Smalltalk Դϴ. ׷Ƿ 츮 Smalltalk ϰ ȴٸ, ü зӿ ùٸ ظ ̶ ڴ մϴ. Smalltalk Ͽ ǹ Ʈ ó ȯ濡 ִ ̾, Smalltalk δ ü з ü ִ İ ְ Դϴ. Ǹ Smalltalk ý۵ ֱ , α׷ ϰ, C C++ Ͻ е Smalltalk ν α׷ ϴ Դϴ. ܱ(Ư ) Smalltalk ǹ Ʈ ǰ , 츮 󿡵 Smalltalk ϰ ϴ е Ϳ ̴ ̶ Ǿϴ. Ư Dolphin Smalltalk õմϴ. ̴ ANSI ǥ Smalltalk Ծ࿡ ϸ鼭 Smalltalkȯ ߰ (syntax highlighting) WIN32 API Ǹϰ ϰ, ܺ DLL ֽϴ. а Smalltalk Ͻ Ʒ غ ߾ ֽø ڽϴ. ٸ Smalltalk , Dolphin Smalltalk ȰϿ ǵ Դϴ. Dolphin Smalltalk ڷǿ Ͻ ֽϴ. Dolphin Smalltalk 98 / 1.1 Dolphin Education Center ƿ﷯ ٷ ÷ ۿ "Smalltalk " ʸ Դϴ. ׷Ƿ "Smalltalk " Ȳ Ѵ ˾ƺ Դϴ. Wilf Lalond "Discovering Smalltalk" å ϸ鼭 Դϴ. å ó Smalltalk ū Ǿ ־ åԴϴ. е å ִٸ оö ϰ ͽ . å̱ ׸ ʰ Ǿ ֽϴ. ϴٰ Dolphin Smalltalkʹ ٸ Smalltalk ý Ͻô ôٸ ű⿡ õ ڷᵵ ÷ ּ ڽϴ. Ʋ ̳ Ͻ ø ð ֽø ݿϵ ϰڽϴ. ƿ﷯ Ǹ ݷ Ź帮ٽϴ. ׷ Ѻֽʽÿ. Դϴ. :[] Smalltalk -- ڷ: [5] :ȫ (ȵ巡) 1998-11-22 03:25 ȸ:387 Smalltalk +---------------------------------------------------------------- | <> >: ǰ ִ | !: ڷ Ǵ | *: ִ | <#ȣ>: ȣ | | | 0. 'Smalltalk ' ϸ鼭 <#0> | | | 1. Smalltalk Ұ | | 1.1. α׷ α׷ <#1> | | 1.2. Smalltalk ġ <#2> | | 1.3. Smalltalk α׷ | | 1.4. غؾ ͵ <#3> | 1.4.1. Dolphin Smalltalk ϱ | 1.4.2. ޱ | 1.4.3. ۲ ϱ | | 1.5. Smalltalk ȯ ѷ <#4> | 1.5.1. ˸ | 1.5.2. | 1.5.3. ü Ž | 1.5.4. Ž | 1.5.5. Ž | 1.5.6. ٷ Ž | 1.5.7. âʾ | 1.5.8. ڿ Ž | 1.5.9. â ⰳ | | | 2. ü ̾߱ | | 2.1. ü? <#5> | | 2.2. | 2.2.1. 丷 ϱ <#6> | 2.2.2. ! ! ! | 2.2.3. ü | 2.2.4. ÿ Ͽ... | 2.2.5. 켱 | ! 2.2.6. ! ! ! <#11> | | 2.3. ü | ! 2.3.1. Ž ϱ <#13> | ! 2.3.2. ü | ! 2.3.3. ڿ | 2.3.4. ãƼ... <#17> | ! 2.3.5. , , ׸ ٷΰ <#19> | | 2.4 <#21> | 2.4.1. | 2.4.2. ˾Ƶθ ͵ | 2.4.3. | | | > 3. ü ä | | ! 3.1. ˾ƺ, ˸! <#22> | 3.1.1. ˸ ü - Transcript | 3.1.2. ˸ǿ ü ᳻ | 3.1.3. յ | | 3.2. ǥ λ | 3.2.1. ̸ ? <#24> | 3.2.2. ٷΰ ǥ | 3.2.3. ǥ <#25> | 3.2.4. ǥ Ͽ | ! 3.2.5. ū ǥ <#26> | | ! 3.3.  | 3.3.1. ǥ <#27> | 3.3.2. ٷ̿ ؼ | 3.3.3.  <#28> | | * 3.4. ¥ â | | 3.5. ȭ | .... +---------------------------------------------------------------- :[] Smalltalk #1 ڷ: [6] :ȫ (ȵ巡) 1998-11-22 03:26 ȸ:373 Smalltalk #1 1998. 11. 21. ȫ mailto:andrea92@hitel.net ====================================== 1. Smalltalk Ұ 1.1. α׷ α׷ ........ ======================================= 1. Smalltalk Ұ ------------------------------ Smalltalk α׷ Դϴ. α׷ ᱹ ǻ͸ ϴ ֵ ִ ϳ ū Դϴ. Smalltalk ó ϴ е , 翡 Smalltalk Dolphin Smalltalk ġϰ ϰ ϴ ⺻ Ұ Դϴ. ׸ ִ Smalltalk α׷ Ѻ ̰, Smalltalk  ɾ ϴ ؼ ϰ Դϴ. ó 'ü'  ''(class)  Դϴ. ׷ Ÿ 켱 ϴ ϴ. Ÿ Ÿ ν ϰ. 翡 ϴ ü⿡ ̷ 麸ٴ Smalltalk ȯ ü ؼ ٷ մϴ. Smalltalk ͼ Դϴ. ĥ Smalltalk ϴµ ־ ⺻ Ǵ ׵ ְ Դϴ. 1.1. α׷ α׷ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 츮 Ϸ翡 ˰ 𸣰 ֱ⵵ ϰ ޱ⵵ ϸ ưϴ. " " ӴϿ " ּ" ̸, 츮 ٸ ׿ ν 𰡸 ̷ϴ. ӴϿ ٴ 鸮 , 츮 ӴϿ ſ µ ϴ Դϴ. ᱹ ӴϿ 𰡸 Źϰ Ӵϴ װ ֽô ̹Ƿ, ӴϿ ߴٰ ֽϴ. (ѳ ǻ͸ ٷ 콺 Ҿ մϴ.) 츮 οԵ ڸ Ͼų, ų, θ ϶ , ׷ ؼ ưϴ. ̳İ , , Ȱ پִ ߸ ֽϴ. ׻Դϱ? ⸣ ֿ Ե 츮 ϴ. "̸ !", " ٿ"ó и 츮 ֿ մϴ. ˾Ƶ ϴ ϴ ŭ Ʒý״Ŀ ޷ Դϴ. :) 츮 ִ ǿԵ ϴ. "TV " ϴµ, Ȯ ϸ, 츮 "TV ߸ " Ұմϴ. ߸ ᱹ TV ӿ ٲ Ǵ . θ ϶ ϴ. ռ ̾߱ߵ TV ͵ ϴ ƴմϴ. ϰų ߸ ų ϴ ͵ ֽϴ. ִٸ, ǻͿ ְ Դϴ.  ü 踦 ϰ, α׷ , ȭ ɰ, Ƿ ִ ԽDZ ãƿͼ д 콺 ų ۼ ε ϸ, θ ƴ϶ Ͻ Դϴ. ۸Ӹ ̸ "" Ÿ ϴİ? װ ٷ 츮 ٷ "α׷"(program) ᱹ ̷ "ɵ "̱ Դϴ. Ȯ Ѵٸ, 'α׷'̶  þ Դϴ. ϴ ̷ α׷ ٽ ʴ "߿ " ٽ ɵ ֽ ϴ. ð踦 ħ ÿ ︮ Ѵٰų, ȭ⸦ Ư ð ۵Ǵ TV α׷̰ TV ð ۵ ֵ ϴ ̰䡪 ȭϵ Ѵٰų ϴ , ᱹ 츮 ٶ ɵ ʴ þ Դ . ̷ α׷ ¥ ۾ 'α׷'(programing)̶ θ . ᱹ α׷ Ǵ ϴ ǹմϴ. α׷ְ ٸ ǹ̷ ̴ ߿ ""(designing) ֽϴ. α׷  Ǵ° ߿ϰ Ͱ ޸,  ϴ ϴ. α׷ ()̳ () ִٸ, ü ֽϴ. α׷ֺٴ ؿ Ѵٰ ˴ϴ. Ҽ 켱 ڱⰡ 󰳸 ¥ ū 帧 մϴ(). ϴ ̷ 󰳰 ¥ ǥ , ״ ڽ ۷ Ű ϴ(α׷). ׷ α׷ Ұ ֽϴ. ʿ ġġ Ǹ ̷ ϰ ׷ ϴ. ǻʹ ϰ ִ ġԴϴ. ǻͿ ϵ ǻͰ ˾Ƶ ִ ۼ . α׷(programer) ̷ ǻͰ ˾Ƶ ִ α׷ ŵϴ. α׷Ӱ ǻͿ ϱ ؼ ߵ, ǻͰ ˾Ƶ ִ ؾ մϴ. ǻʹ ϴ ڿ() ŭ ȶ մϴ. ᱹ ǻͰ ˾Ƶ ִ ̿Ͽ α׷ ۼϴ ۿ ϴ. ̷ α׷ Ͽ ǻͰ ˾Ƶ ִ 'α׷ ' θϴ.  մϴ. 츮, , Ͼ, ߱, 󿡴 ֽϴ. ǻͰ ˾Ƶ ִ , α׷  ֽϴ. ַ C, C++, Java, Pascal, BASIC  ִ° ϸ, ַ ǰ ִ Forth, Lisp, Prolog, Scheme, 츮 Ϸ ϴ Smalltalk α׷  մϴ. ̵ ־,   ϴ. · 츮 ٷ ϴ Smalltalk̹Ƿ ۿ ٸ  ؼ ũ ٷ Դϴ. ʿ ٸ  ̹ ͼϽ е ؼ ٸ  ؼ ڰ ϴ ͵ Դ . Smalltalk Ͻôµ ǽñ⸦ ٶϴ. ... :[] Smalltalk #2 ڷ: [7] :ȫ (ȵ巡) 1998-11-23 10:40 ȸ:332 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. ٸ α׷ ġ ó ׳ ߸ ٷ ٷ Ѿϴ. ĥ ִ ̶ ˸° ġ ˴ϴ. 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. ִ ٷ ̵Ͻʽÿ. '.' ٷ ڿ Ŀ ġŰ Դϴ. ۼǿ ʽÿ. ׸ ȭ 캾ô. Ŀ ڸ (block) "7"̶ ڰ Ÿϴ. 3 + 4. 7 ⼭ ̿ ѷ ü Ÿ "7" 츮 Ų Դϴ. "3 + 4" Ͽ "7"̶ Դٴ Դϴ. ó Smalltalk ϸ ̰ ü Ÿϴ. ¿ ٷ ۼ ۼ質 ۼ踦 ̿Ͽ ̸ Ǹ, ̰ Ǵ Դϴ. 츮 1972 10 Smalltalk ýۿ ó ̶ մϴ. Object Arts 1995 2 ڻ Dolphin Smalltalk ߴٴ±. Դϴ. 200 factorial. Ŀ , ռ ߴ ۼ踦 ؼ Ѻô.  Ǿϱ? 200 factorial. 788657867364790503552363213932185062295135977687173263294742533244359 44996340334292030428401198462390417721213891963883025764279024263710506 19266249528299311134628572707633172373969889439224456214516642402540332 91864131227428294853277524242407573903240321257405579568660226031904170 32406235170085879617892222278962370389737472000000000000000000000000000 0000000000000000000000 200!, 200 Դϴ.  ڸ Ǿϴ. ʽϱ? Ƹ C++ Java  ⺻ ϴ ɸ Դϴ. ------------------------------------------------------------- ? (ͭ, factorial)̶ n ϳ ڿ , 1 n n Ͽ ´ Դϴ(ѱȸ, 1994, 츮ū). ̸׸ 5! 5x4x3x2x1, 120 Ǵ Դϴ. ---------------------------------------------------------- ׷ Smalltalk 200! ϴµ 󸶳 ð ɸ? ٷ ϸ ֽϴ. Ͻʽÿ. Time millisecondsToRun: [200 factorial]. 1 Ϳ! 200! ϴµ 1ms ðۿ ɸ ʴ´ٰ ׷±. 1msʴ 1000 1̹Ƿ, ſ ӵ 200! ִٴ ֽϴ. ϰ ֽϴ. ʽÿ. ( ϱ ؼ ش Ŀ ġϰ ۼ ٴ ϰ ð?) 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." 쵵 ó 쵵 ϴ. ̿ ؼ, ݱʹ ٸ غǾ ֽϴ. ô. Ŀ ۼǿ ʽÿ. ƴ϶ ֽʽÿ. Class allClasses asSortedCollection. "Inspector â " ϱ? "Inspecting a SortedCollection"̶ â ȭ鿡 Ÿϴ. Ÿ â "ü Ž"(object inspector), Ȥ "Ž"(inspector) θϴ. â ʿ self Ͽ ׸ , ؿ 1, 2, 3,...ó ȣ Ű ֽϴ. ׸ ʿ ʿ ̵ ׸ ǥϴ κ ֽϴ. ó "self" ׸ Ǿ ̰, ʿ 츮 Ȱ Ÿ Դϴ. ٸ ׸ ΰ, 1, 2, 3,...ó ȣ Ű ׸ ô. ׷ ׸ ϳ â Դϴ. Smalltalk ȯ濡 ִ (class)Դϴ. ׸ Դϱ? 567Դϴ. ᱹ , Smalltalk ýۿ 500 Ѵ Ѵٴ Դϴ. Ⱦ ִ Ž⸦ ʽÿ. ɾ Ѻô. Ʒ Smalltalk ȯ濡 ü ü(object) ϴ ݴϴ. Ͻʽÿ. Object allSubinstances size. 44121 쿡 44121 ü ִٰ Ǿϴ. 쿡 ٸ ڰ Ÿ 𸣰ڽϴٸ, ư ư ִ Smalltalk ȯ濡  4 Ѵ ü ӹ ϸ鼭 ֽϴ. 'ü' '' ϴ Ͻʴϱ? ǹ̸ ľϱⰡ ϱ? Ű ʿ䰡 ϴ. Smalltalk ϸ鼭 ڼϰ ˰ ̱ Դϴ. Smalltalk ϰ ˾ƺ ô. ݱ 츮 Smalltalk ҽϴ. ⼭ Smalltalk ϴ ؼ ݱ ˾ƺ ϰ ϰ Ѿ ϰڽϴ. 1. ؾ Ŀ ´. 2. ۼ踦 Էϸ ǰ Ÿ. 3. Ÿ ġ ϸ Ͽ "Ž" ؼ 캼 ִ. ǽʴϱ? ذ ô е ⼭ ޽ Ͻʽÿ. ׸ ó ٽ 󰡸鼭 ô. , ׷ Ѻڽϴ. < 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. ù ڿ Ŀ , 鼭 ۼ踦 ̿ϴ ֽϴ. ߿ Ͻñ ٶ . · ߿ ϰ ٿ ڵ ̸ Ѵٴ Դϴ. ̸ տ ó ԷϿ ڽϴ.  Ǿϱ? < 1> a Process(a CompiledExpression, priority: 5, state: #ready) ϰ ٿ ̸ ڸ Ѹ鼭 ȭ ŭϰ ð ǥõǴ ֽϴ. ð Ÿ ڸ ٸ ׸ ׷ ׸ ڸ ð Ÿϴ. ŭϰ Դϴ. < 1> ð踦  ȭ鿡 ̴ α׷̾ϴ. ׷ ŭ ð谡 ǥõǾ δ Դϴ. , 츮 ǥ ð踦 ֵ ô. Ͻʽÿ. ¥ ̹Ƿ ̸ ʿ ϴ. ׳ Ŀ ʽÿ. digitalClockProcess terminate. UserLibrary default invalidate: nil lpRect: nil bErase: true. true '' ǥð Ǿ ִ ٿ ִ ڼ ¿ ̻ Ÿ ǹմϴ. ׷Ƿ ǥð ִٴ ٷ ٰ ̾ Ÿ ϴ. ϸ ² ǥõǴ ð 'true' ް ˴ϴ. ռ 츮 ҽϴ. ϳ < 1>ν ȭ 鿡 ð踦 ̴ ̰, ϳ ϰ ִ ð踦 ߾ ̾ϴ. ׷ ڿ Ÿ ̾ϱ? 츮Դ Դϴ. ð踦 ̰ ִ ߿, ǰ ڿ  Ϳ ǥϴ ϴ. ̷ Smalltalk ϴ ° ֽϴ. ̰ ٷ ۼԴϴ. ɾ ϰ Ǵ ȭ鿡 ǥϰ մϴ. 츮 ߴ < 1> "UserLibrary" ϴ , ̹ Ͽ ʽÿ. Ѱ ϰ Ǵ ֽϴ. , ٽ սô. Smalltalk ϴ ... ---<>---------------------------------------------------------- Smalltalk * : Ϲ . ϰ δ. * : ϰ , ŽѴ. * : ü ǹ̰ ְ ϰ . ---------------------------------------------------------- ---<ٸ Smalltalk>--------------------------------------- Dolphin Smalltalk ƴ ٸ Smalltalk ȯ ֽϴ. ϴ ̿ ؼ ߿ ٷ 翡 ڼϰ Դϴ. ---------------------------------------------------------- , ׷ ؼ Smalltalk ִ ô. (wave) ݴϴ. (Sound fromFile: 'xxxxx.wav') woofAndWait; woofAndWait. 'xxxxx.wav' ڽ ϰ ̸ ٲپ ָ ϴ. ٴ ü ߿ Ƿ, Ͽ ô. ڴ (Sound fromFile: 'C:\Windows\Media\Ding.wav') woofAndWait; woofAndWait. ļ ҽϴ. ư 츮 ִ մϴ. ! Smalltalk Ƽ̵??? ̹ α׷  غ 鿡 ǹ̰ ڽϴ. 100 Ҹ 迭 Դϴ. (1 to: 100) collect: [:i | i]. #(1 2 ...(߷)... 99 100) ʹ ϱ? Ͽ Ž ô. ( Դ ߿ϰ?) 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> ܼ ߺ ڸ ʴ ƴ϶, ū , ĵ ϴ. ÷ α׷ ϱ? ݱ ڵϰ Ƿ, ̹ ׸ ؾ ִ ȸ 帮ڽϴ. Ͽ Ͻʽÿ. 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. ϸ " â" ϴ. ׳ ߸ ذ˴ϴ. ٸ α׷  ̶ ⼭ ߸ ν 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 ҽϴ. ׸  ϴ ؼ ˾ƺҽϴ. , , ۼ踦 Ѵٴ ͵ ˾ ҽϴ. ¥ ɰ ٿ ģ ϴ ˾ƺҽϴ. Smalltalk Ŷ մ . 𸣰 Smalltalk ٽ ͼ ۿ ִ ٽ ñ ٶϴ. Smalltalk ϴµ, ռ ȵ ϴ. Smalltalk Smalltalk ¸ ϰڴİ ˴ϴ. ʾǷ Ұմ . ̰ ߵ 𸣰ڽϴ. ȴٴ Ǽ ϴ װ Smalltalk ȯ濡 ǹϱ Դϴ. ׷Ƿ а Smalltalk ͼ ͵ Դϴ. ٷ 帮 ϰڽϴ. ... :[] Smalltalk #3 ڷ: [8] :ȫ (ȵ巡) 1998-11-25 15:28 ȸ:260 Smalltalk #3 1998. 11. 25. ȫ mailto:andrea92@hitel.net ====================================== 1. Smalltalk Ұ 1.1. α׷ α׷ 1.2. Smalltalk ġ 1.3. Smalltalk α׷ 1.4. غؾ ͵ 1.4.1. Dolphin Smalltalk ϱ 1.4.2. ޱ 1.4.3. ۲ ϱ ........ ======================================= 1. Smalltalk Ұ ------------------------------ 1.4. غؾ ͵ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ݱ 츮 Smalltalk ϰ Բ, Smalltalk ϴ ؼ ˾ƺҽϴ. ⼭ Smalltalk θ ϱ غؾ ׿ ؼ ٷ ϰڽϴ. 1.4.1. Dolphin Smalltalk ϱ --------------------------------- 츮 Dolphin Smalltalk ϸ鼭 ϴ. ̴ 츮 ġ ʾұ Դϴ. Object Arts() ִ Dolphin Smalltalk 98 / 1.1 ϸ鼭, ׸ ϴ Ϲȣ ߱ ޾Ƽ ϰ ֽϴ. ̴ Dolphin Smalltalk ϴ  , ׸  ϴ ϱ ̶ մϴ. ؼ ʿ ̶ մϴ. Դϴ. ׷Ƿ ͳ ִ ̶ ٷ ĥ ֽϴ. ռ , Ϸ Object Arts翡 ߱ϴ ȣ ƾ մϴ. ȣ ߱ ޴ WWW(World Wide Web) ϴ (e-mail) ϴ ֽϴ. 1) WWW ϴ Dolphin Smalltalk մϴ. ׷ File > Exit Dolphin ޴ Ѽ Dolphin Smalltalk մϴ. Smalltalk Ȳ ϰڴİ µ, <> մϴ. ׷ "Locked Image" â Դϴ. ⼭ ؾ ϴ , ׸  ؾ ϴ Ǿֽϴ. ⼭ Username Է ڿ ̸ ֽϴ. ׷ â ִ ߸ ְ Դϴ. ͳݿ Ǿִ Ȯϰ ̾ ߸ Object Arts " " ̵ϰ Դϴ. Է ׸ ֽϴ. ϰ ׸鿡 ؼ մϴ. * Product: ϰ ִ Dolphin Smalltalk . 츮 1.1 ǰ? * First Name: ̸ ֽϴ. ChanHong Kim ǥ ǹǷ, First Name ChanHong Էϸ ˴ϴ. * Last Name: ֽϴ. 쿡 Kim̰? * Stree Address: 츮 쿡 /, /, , ּҸ ܱ Ųٷ Դϴ. Street Address ̸ ϴ. 2288-3, DaeMyung 3 Dong, Nam-Gu ӷϸ ǰ? * City: ø Էմϴ. 뱸ϴ. Taegu. * State: ̱ ָ Էմϴٸ, 츮 Ӵϴ. * Zip Code: ȣ ֽϴ. 700-234. * Country: 츮 ڶ "Korea" մϴ. * E-mail: ڿ ּҸ Էϸ ˴ϴ. * Where did you hear about this product? Dolphin Smalltalk ó ü ϴ. * Previous experience of Smalltalk? Smalltalk ֽϴ. * Intended use of this product? Dolphin Smalltalk  ϴ. * How many attempts did it take you to download this software?: Dolphin Smalltalk ۹޾Ҵ ϴ. * Image Code: ⿡ "Locked Image" â ǥõ Image code ֽϴ. * Usrname: "Locked Image" â Է Username Էմϴ. (ݵ ġؾ մϴ.) ׸ Է Ʒ ߸ ϴ. ׷ Image Code ׿ شϴ Password ߱ ް ˴ϴ. "Locked Image" â Password Էϸ ˴ϴ. ġ Smalltalk ؼ Username Password ״ Ƿ, ʹ ĥ ʿ䰡 ϴ. ġ ǻͿ ġǾ ִ Dolphin Smalltalk ְ ˴ϴ. Smalltalk ֽϴ. 2) ڿ ϴ WWW ϱ ưų ͳ ϱ е ڿ ̿ ϸ Ϲȣ ߱ ֽϴ. : support@object-arts.com : password : Username Image code. Ĵ Ǹ 缭 ȣ Դϴ. ̷ ؼ ߱޹ password (1) Էϰ Ǹ Dolphin Smalltalk ˴ϴ. ϴ Ǹ ֽϴ. 1.4.2. ޱ ----------------------- Smalltalk Smalltalk ¸ ״ ߴٰ ߿ Smalltalk Ȱ ֽϴ. , "1.3" 𿡼 Smalltalk ð踦 Դϴ. ִ Dolphin Smalltalk Ʒ ۼ踦 Ͽ ؼ ٽ ð踦 ǥ ô. < 1> Smalltalk ð ---------------------------------------------------------- digitalClockProcess := [[ Processor sleep: 1000. (DesktopView current canvas) font: (Font name: 'Arial' pointSize: 36) bold; text: Time now printString at: 10@10; free ] repeat] fork. ---------------------------------------------------------- ȭ鿡 ŭ ð谡 ǥõǰ Դϴ. File > Exit Dolphin ޴ ؼ Dolphin Smalltalk ô. Smalltalk ¸ ϰڴİ ϴ. <> Ͻʽÿ. ׷ Smalltalk 鼭 ² ư ð谡 ֽϴ. ð踦 Smalltalk ȯ 翬 . ¿ ð踦 ȭ ٽ ׷ մ . Windows ȭ ǥõǾִٸ ۼ踦 ȭ ٽ ׷ ֽϴ. ٽ Smalltalk ô.  Ǿϱ? Smalltalk ڸ Է < 1> Բ ð谡 ٽ ̱ ߽ϴ. , Smalltalk ¸ ״ ϰ ̴ Դϴ. ű ʽϱ? ̾߱⸦ ϱ Ѽ ư ð踦 ô. digitalClockProcess terminate. UserLibrary default invalidate: nil lpRect: nil bErase: true. Smalltalk ü(object)Դϴ. 츮 Smalltalk ü մϴ. Smalltalk ü ׸ ƴմϴ. ׷ C++ Delphi Ǵ Visual Basic ٸ ȯ ϴ ̶ Smalltalk ü ִٴ ϱ ϴ. ٿ , Smalltalk ü ֽϴ. ׸ ̴ Smalltalk ״ Ǿٰ ߿ Smalltalk ȯ ۵Ǹ ¸ ϸ鼭 Դϴ. Smalltalk ¸ ״ Ӵϴ. ⼭ ' Smalltalk ' ""(image)̶ θ, ̷ " " մϴ. Smalltalk ȯ濡 Ƽ ư ü Ǿ ֽϴ. Smalltalk ȯ ᱹ 4 ü 緯 ư ̹Ƿ,'' Smalltalk ϵǴ Դϴ. ׷Ƿ '' ſ ߿ Դϴ. ׾߸ '' ˴ϴ. ׷Ƿ Smalltalk ݵ "" ε սô. ׷߸ ߿ Smalltalk ȯ ٽ ۵ ״ ͼ ü ų ֱ Դϴ. ᱹ "" ð 帧 ڲ ڲ Ѵٴ ֽϴ. δ ο ü ⵵ ϰ, ̹ ִ ü ⵵ 鼭 . ׷ Ǽ Smalltalk ʿ  ü ٰ ô( ̷ Smalltalk ʽϴ. ġ.). ׷  ǻ ְڽϱ? ϴ. , ׷ ؼ ü ٽô ų Դϴ. ̰ Smalltalk ġ Ŀ ٷ Ǵ ''(base image) ξ ϴ Դϴ. ׷߸ 쿡 ߻ϴ ִ Դϴ. , ׷  ϸ ޾Ƶ ִ ˾ƺô. Dolphin Smalltalk ġ  ֽϴ. Dolphin.chg Dolphin.img Dolphin.sml (back up) ޾ƾ ϴ ϵԴϴ. ϵ ޾Ƽ ٸ θ, Ǽ ų ٲ Smalltalk ȯ ǵ Դϴ. Ͽ մϴ.  Ͽ ޾Ƶδ ſ ϴ. (ڴ Ϸ翡 ޽ϴٸ...) ׷ ϵ ϴ ϰԳ ϵ ϰڽϴ. * Dolphin.sml Dolphin Smalltalk (source code)Դϴ. ⿡ ⺻ Object Arts翡 Smalltalk ȯ ̷ ҿ Ƿ ֽϴ. 뷮 3MB ѽϴ. * Dolphin.img Dolphin Smalltalk ''(image)Դϴ. ռ , Smalltalk ü ° Ǿֽϴ. ׷ Smalltalk ȯ ٽ Ǹ ⿡ Ǿִ ü Ǿ Ȱ ϴ Դϴ. * Dolphin.chg ' '(change log file)̶ θϴ. Smalltalk ϵ˴ϴ. ο ü ų ִ ü ٰų ϴ, Ͽ ϵǾ ֽϴ. ٽ ϸ  ؿԴ Ͽ δ Դϴ. ⼭ ñϴ 𸣰ڽϴ. ٷ , ̳Ĵ Դϴ. '' ִµ Ѱ ñ Դϴ. '' ü ° Ǿ ֽϴ. ׸ '' ̷  ü ɵ ֽϴ. , '' ̰ '' 赵Դϴ. 赵 ü ϴ. ׷Ƿ ְ 赵 ִ Դ . '' ü ְ, ü ۿ ֽϴ. ۿ ִ ϸ ü ִ ̰, ٷ '' Ǵ Դϴ. 츮 ó 3 + 4. 7 ̶ ߴµ, ɵ ü մϴ. '3' '4' ü '7'̶ ο ü Դϴ. '7'̶ ü ؼ "3 + 4." ̰, ܳ "7"̶ üԴϴ. ⼭ "3 + 4." Ǵ ̰, '7' (=) Ǵ Դϴ. '' '' ̸ ƽðڽ ϱ? ư Dolphin Smalltalk þ ޾ ƾ߸ մϴ. ׸ Smalltalk ȯ ۾ 鼭 ߰ ߰ и δ ϴ. ޱ ƹ ص ġ ϱ. ------------------------------------------------------------- Dolphin Smalltalk ƴ ٸ Smalltalk ȯ濡 ڰ Ͱ ٸ '' ֽϴ. ׷ Smalltalk ⺻ ¸ ϰ, Smalltalk ȯ ٽ Ǹ ϵ ҷͼ ٴ ϴ. ---------------------------------------------------------- 1.4.3. ۲ ϱ -------------------- Dolphin Smalltalk ⺻ ǿ µ Ǿ ֽϴ. ѱ Windows ϴ ⺻ ۲ '' ۲ ٲپ ʿ䰡 ֽϴ. Dolphin Smalltalk Tool > Options > Default Font... ޴ Ͽ ۲ '' ĺ Smalltalk ⺻ ü ۲ Դϴ. ('' 'ü' ٸ ۲̹Ƿ '' սô.) ϴ Smalltalk ݿ ˴ϴ. Ƿ Smalltalk ϸ ⺻ ۲ Դϴ. ݱ 츮 Dolphin Smalltalk ϰ, ް, ⺻ ۲ ϴ ϴ. ̸ Ͽ Smalltalk ȯ θ, ڷδ Smalltalk ο Դϴ. ϰڽϴ. " ޱ" ƹ ص ġ ʽϴ! :) ... :[] Smalltalk #4 ڷ: [11] :ȫ (ȵ巡) 1998-11-27 11:16 ȸ:246 Smalltalk #4 1998. 11. 27. ȫ mailto:andrea92@hitel.net ====================================== 1. Smalltalk Ұ 1.1. α׷ α׷ 1.2. Smalltalk ġ 1.3. Smalltalk α׷ 1.4. غؾ ͵ 1.5. Smalltalk ȯ ѷ 1.5.1. ˸ 1.5.2. 1.5.3. ü Ž 1.5.4. Ž 1.5.5. Ž 1.5.6. ٷ Ž 1.5.7. âʾ 1.5.8. ڿ Ž 1.5.9. â ⰳ ........ ======================================= 1. Smalltalk Ұ ------------------------------ 1.5. Smalltalk ȯ ѷ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Smalltalk ּ â ֽϴ. ϳ "System Transcript" پִ "˸"(transcript) ְ, ϳ "untitled - workspace" ٿ "" װԴϴ. Smalltalk ȯ濡 â ٸ â ֽϴ. Ư ӻ , ̵ Smalltalk α׷ ¥µ ʿ մϴ. [] Smalltalk  â ̵ ϴ ˾ƺν, Smalltalk ȯ Ư¡ ˾ƺ ֵ ϰڽϴ. â鿡 ؼ ߿ ʿ ڼϰ Դϴ. ⼭ ׳ ̷̷ â , 屸 ϴ ϵ սô. ڷǿ Dolphin Smalltalk ޾ ġ ̶ ݺʹ 뷮 ϴ Smalltalk ȯ ޾Ƽ θ Ͻö մϴ. Ƽ̵ȭ Ǿ 츮 ܿ ȯ Ķ ڸ Ÿ ֱ , ׸ ̰ ݿ ϱ ϴ. :) 1.5.1. ˸ ------------- Smalltalk ȯ濡 ߿ â "˸"(transcript)Դϴ. 'transcript' ' , 纻, 'ε, Smalltalk ڷν transcript â ٰ ϱⰡ ƽϴ. ƹ Smalltalk ý ° â ״ ݿDZ ƴѰ մϴ. ư â Smalltalk ȯ濡 ߿ âԴϴ. â ν ٷ Smalltalk ȯ ۵Ǵ ̰, â ν Smalltalk Ǵ Դϴ. â Smalltalk ȯ Ѵ ص ƴ , Smalltalk ȯ Ǿ ִٸ ִ âԴϴ. â ڿ ''(workspace) մϴ. ׷ ˸ '' Ǵ ū Ư, Smalltalk ȯ濡 ڿ ˷ â ǥõȴٴ Դϴ. α׷ ϴµ ߴ ߸ ٰų, ο ٷ̸ ҷ ٰų ̹ ִ ٷ̳ ü ־ٴ ˸ǿ Smalltalk ȯ 츮 ˷ ׵ ϵ˴ϴ. ˸ǿ ø и ֽϴٸ, װ ڷ ̷ڽϴ. Smalltalk ȯ File > Exit Dolphin ˸ ݰ Ǹ Smalltalk ȯ ֽϴ. 1.5.2. ----------- (workspace) Smalltalk ȯ濡 ˸ ߿ âԴϴ. Ϳ մϱ? :) ? Ͽ ݿ , ϴ ̶, 긮鼭 ϰ ٱ⵵ ϸ鼭 ͸ ϴ. Ӹ ̶ ⵵ ϰ ⵵ մϴ. ȸ ̶ Ʒ鿡 ø ϴ. ׸ ø ڽ ó 忡 ǵ ݴϴ. ̷ Դϴ. Smalltalk Դϴ. ⼭ ⺻ ֽϴ. Smalltalk ְ, ϴ Ǯ̱ , ׳ ƹ ֽϴ. Ϳ Smalltalk մϴ. α׷  κ ⼭ ⺻ ν ֽϴ. ο ͸ ؼ File > New ޴ ϰų, " ̰ ׷ ׸" ˴ϴ. ˸ ϳۿ µ , ʹ ʿ ŭ ֽϴ. ׸ Ϳ ϵ ۵ ε ϰų ҷ ֽ . ׷Ƿ  ڿ Ÿ Ҿ ϳ Ϸ ִٴ Դϴ. ռ 츮 ˸ǿ ø ν 츮 ϴ ٰ ߽ϴ. ׷ ʽÿ. ۼ踦 Ʒ Ͻʽÿ. (Smalltalk ϴ ޴ ̶ "1.3" Ͻñ ٶϴ.) Transcript show: 'ȳϼ?'. ȳϼ? "˸ǿ ǥõȴ." ------------------------------------------------------------- ô! ϸ鼭 Smalltalk Ұ Դ . ׷ п Ź 帱 մϴ. ۿ Ǵ Smalltalk Ͽ Ϳ ٿ ־ ϴ ŹԴϴ. ŷӴ а ִ ״ Ϳ ۼ ְ Ͽ ϴ ξ ϴ. ܼ ؼ ִ ۼǿ ġ Ǹ, ۿ ϴ о Ӹ ǰ ǰ, ۼ ġ鼭 Ϳ Ÿ ǰ, ϸ鼭 ° ˴ϴ. ׷ ϰ ̴ ̷ ȿ ϴ.  а  ϴ п ޷ֽϴ. ׷ ȿ θ ؼ Smalltalk ؾ մϴ. ͸ ִ ƴ϶, ü  ǹ ϸ鼭 Էϸ Smalltalk δ ܷ ſ Դϴ. ̴ ڰ ó "Smalltalk Tutorial" ̹Ƿ, Ͼŵ Դϴ. ---------------------------------------------------------- ϱ? ״ ˸ǿ Ÿϴ. Ϳ Smalltalk ֽϴ. Ͽ Ϳ ֽϴ. 3 + 4. 7 ó ʹ Smalltalk α׷ֿ ־ ϰ Ǵ â̹Ƿ, Ȯ δ Դϴ. Ϳ ִ κ ˸ǿ ֽϴ. ׷ Smalltalk κ ۾ ˸ ƴ Ϳ մϴ. ˸ǿ ַ ˸ ϵǵ ϰ, Smalltalk ȯ ü ִٸ '˸' ϴ Ǿ ֽϴ. 1.5.3. ü Ž ------------------ ü Ž(object inspector) ۼ踦 Ÿ âԴϴ. â ⺻ ִ ü ߰ ɰ Žϱ ϵ Դϴ. տ 츮 Ž⸦ ʽÿ. Ʒ Smalltalk ȯ濡 ִ (class) þ ǵ Դϴ. Class allClasses asSortedCollection "ü Ž " ۼ "Inspecting a SortedCollection" ̶ â Դϴ. ϰ Ǹ 500 Ѵ ҵ ִ ƿ Ǵµ ̸ Žϱ ؼ ü Ž⸦ ϴ մϴ. ü Ž κ ̷µ, ʿ ü ִ κе ̸ ǥõǰ, ʿ ̵ κ ǥõ ϴ. "self" Žϰ ִ ü ڽ Ÿϴ. ü Ž ü ȿ 鿩ٺµ ſ ū ϰ ֽϴ. 1.5.4. Ž ---------------------- , ִ Tools > Class Hierarchy Browser ޴ Űų ۼǿ ' Ž'Class Hierarchy Browser) ҷ ֽϴ. Ž⸦ ٿ ' Ž' θϴ. Ȧ ִ ƴ϶ ٸ 踦 ΰ ִµ, Ž ̷ (hierarchy) ¤ Ž ϴ Դϴ. ũ κ ̷ ŽⰡ ſ ̰, â ͼ ̸ Smalltalk ̻ ˴ϴ. Smalltalk üԴϴ. ׷Ƿ α׷ ̷ ü ϰų ƴϸ մϴ. ' Ž' ֱ , '' Ҿ α׷ Ǵ ̱⵵ մϴ. 1.5.5. Ž ------------------ 츮 Smalltalk  Smalltalk (method)  ؾ ˾Ƴϴ. Ž ̷ Ƽ Ž ̴ Դϴ. ߿ 'Dolphin'̶  ִ (image) ˴ ãƳ Դϴ. 3M ̻ Ǵ (source code) ۱͸ ã ̹Ƿ ð ɸϴ. SmalltalkSystem current browseContainingSource: 'Dolphin' " Ž " "Dolphin"̶ ۱Ͱ ԵǾֽϴ. Ž ũ κ ֽϴ. â ̸ ǥõǾ ְ ֵ Ǿֽϴ. ׸ Ʒ â â ̵Ǿִ ǥõ˴ϴ. Ž ռ Ͱ ַ (class) ǿ ´ ̾Ƴ 캸 մϴ. 1.5.6. ٷ Ž -------------------- Smalltalk ȯ Tools > Package Browser ޴ ϸ ٷ Ž ֽϴ. ٷ(package) Smalltalk , ü, ڿ (resource) Բ ٷ ֽϴ. ַ ٷ̴ ϳ Ŀٶ α׷ , α׷ ü ־ ϱ ؼ ˴ϴ. ٷ Ž ̷ ٷ̸ ų ̹ ִ ٷ̸ 鿩ų, ų ġ մϴ. ٷ Ž ũ κ Ǿֽϴ. ʿ η Ǿ ִ â Dolphin Smalltalk ȯ濡 ġǾִ ٷ̵ þ Դϴ. κ ٷ̿ ִ ͵ 캸 ν, , , ǥ(global variables), ڿ ε ִ (tab) ޷ֽϴ. Ʒκ ̵ ִ Դϴ. ̵Ǿִٸ (class definition), ̵Ǿ ִٸ ݴϴ. ٷ Ž Smalltalk ȯ濡 ̴ ü ϴ ſ ߿ Դϴ. 1.5.7. âʾ ------------- âʾ(View Composer) ȯ(User Interface) Դϴ. Tools > View Composer ޴ ϸ â ֽϴ. ⼭ â(window)̳ ȭ (Dialog box)  α ϴ ڰ ڷḦ Է ֵ ݴϴ. κ â ϴ κ̰, Ʒ ġ â â , õ ü (aspect), ٷ ʿ ̵Ǿִ ִ ǥϴ κԴϴ. âʾ ''(tool box) ϴ â ֽϴ. â â ʿ ǰ ڿ ֽϴ. ۾ ǥ (label), Է (edit box), (push button) ̹ â ⿡ ǥõ˴ϴ. Delphi Visual Basic â ϴ Ϳ Ӵ . Smalltalk â ſ ߿ ġ , â ϱ ü մϴ. âʾ ϱ ٸ Դϴ. 1.5.8. ڿ Ž ------------------ Tools > Resource Browser ϸ ڿ Ž⸦ ֽϴ. ռ âʾ ϸ鼭 '' ؼ ̾߱ ֽϴ. â ִ ǰ ڿ ִٰ ߴµ, ڿ Ž ̷ ڿ ϴ մϴ. ο ڿ ų ִ ڿ ̸ ٲٱ⵵ ϰ, ڿ ¸ ٲٱ մϴ. âʾ Ҿ ڿ Ž⵵ ȯ µ ߿ ϰ ֽϴ. 1.5.9. â ⰳ --------------------------- Ǽ ϱ⸶Դϴ. ׷ е ׷ ̴ϴ. Smalltalk ̳ Ǽ ֽ . " â"(walkback window) Smalltalk α׷ Ǵ ¿  ߴ ߻ , ݱ   Դ 븦 ǥϰ, ڰ ˸ ġ ֵ âԴϴ. Ʒ ۼ ô. 5 hello " â " ڸ "SmallInteger does not understand #hello" â ǥõ Դϴ. シ "SmallInteger hello ø ˾Ƶ ߴ" Դϴ. "5 hello" Smalltalk(Ȯ '5') ˾Ƶ ߴٴ Դϴ. ׸ Ʒ Ÿ ȿ ± 븦 ǥ մϴ. --------------------------------------- SmallInteger(Object)>>doesNotUnderstand: UndefinedObject>>{unbound}doIt CompiledExpression>>value: SmalltalkWorkspace>>evaluateRange:ifFail: SmalltalkWorkspace>>evaluateItIfFail: SmalltalkWorkspace>>evaluateIt ....(Ϸ) --------------------------------------- κ ǹϴ Ȯϰ Դϴ. ׷ Smalltalk ͼ , ü  θ Ǿ ߻ ְ ˴ϴ. κ â ľ ֽϴ. ݰ 쿡 츮 ˾Ƶ ߴٴ ̰. â Ʒʿ ߰ ֽϴ. ߿ ϰ α׷ ų , Ų ̰, ǰ ִ ɿ ׸ ߴ ϴ. ⼭ ߸ "ⰳ"(debugger) â ɴϴ. â ϳ ϳ ϸ鼭 ٲ ü ¸ ϸ鼭 Ž ϴ Դϴ. ؼ, Ž Ͼ ¤鼭 ã Ͱ ϴٰ ϰڽϴ. ⰳ â ſ ̷ ־, Smalltalk  Ǵ ƾ߸ Ȱ ִ Դϴ. ׷Ƿ ܼ ̷ ̱ θ θ Դϴ. ߿ ⰳ , , ؾ ϴ ؼ ڼϰ ̾߱ ȸ Դϴ. ------------------------------------------------------------- ٸ Smalltalk... ⺻ Smalltalk ȯ ˸ǰ , Ž, ü Ž, â, ⰳ ֽϴ. ׸ ⿡ ؼ Smalltalk ݾ ٸ â ߰Ǿ ֽϴ. Dolphin ٷ Ž⳪ âʾ, ڿ ŽⰡ , Smalltalk Express Smalltalk ȯ濡 Disk Browser ִٰ մϴ. ---------------------------------------------------------- ------------------------------------------------------------- Windows ׸ ȯ(GUI) 콺 ʼ ġ ǰ ֽϴ. ̰ ´ Դϴ. ׷ 콺 ͸ ƴմϴ.  ۼ 콺 찡 ϱ. Smalltalk ۾ ϴٺ â ְ â Դٰ ؾ ϴ ϴ. ̷ ۾ ǥٿ ִ â ̵ϴ ͺٴ ̳ ۼ踦 ϴ ξ մϴ. ۼ踦 ¿ ۼ踦 ʽÿ. ׸ ۼ迡 ʽÿ. ׷ ȭ  â ߰, ִ â ǥõ Դϴ. ̵ϰ, ̵մϴ. ̴ Windows 3.1 ִ '۾ ȯ'ε, Ư Smalltalkó â ۾ؾ ϰ Դϴ. ---------------------------------------------------------- ========================================================== ݱ 츮 Smalltalk ü  ̰,  ϸ, Smalltalk ȯ  ġϰ ϴ ؼ ˾ƺҽϴ. Smalltalk ȯ  ѷҽϴ. ª Smalltalk Ư¡ 巯 ɵ ν, Smalltalk ȯ濡 ģ ֵ ߽ϴ. Smalltalk ȯ濡 ؼ ͼ ־ մϴ. Smalltalk ϰ , Smalltalk ϸ鼭 ⺻ ˰־ ׵̱ Դϴ. ̷ ͵ []ʹ Smalltalk ü ؼ ˾ƺ ϰڽϴ. ... :[] Smalltalk #5 ڷ: [12] :ȫ (ȵ巡) 1998-11-30 11:15 ȸ:215 Smalltalk #5 1998. 11. 30. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? ...... ======================================= 2. ü ̾߱ ------------------------------------ [] 츮 Smalltalk ȯ濡 ⺻ ˾ƺ ҽϴ. Smalltalk ȯ ġϰ ϴ , Smalltalk Ű , ׸ Smalltalk α׷ ü  ϰ ̰  Ű ؼ 츮 캻 Դϴ. Smalltalk 뷫  â , â ϴ ؼ 캸ҽϴ. ̹ ݱ 츮 ⺻ ͵ Smalltalk ο  Դϴ. 켱 ü ؼ 캸, ̾ Smalltalk ̹ ִ ü ؼ 캼 Դϴ. Smalltalk ̹ ϴ ü鿡  ͵ ׵  , װ͵ ϴ ̸, ü ִ ؼ ˾ƺ Դϴ. ĥ ̸ Smalltalk ü ٷ ⺻ ؼ ͼ Դϴ. 2.1. ü? ---------- Smalltalk Ϸ "ü α׷ "(OOPL: Object Oriented Programming Language) θϴ. д е ߿ α׷ ʴ ǻ͸ ϸ鼭 "ü "̶  е Ŷ ˴ϴ. ̴ "Ƽ̵"(multimedia) (?)ϱ "ü "̶ ߾ϴ. "ü ͺ̽", "ü  ü", "ü м ", "ü Ʈ ", "ü ȣȸ" ... ǰ ŵξ ü Ϸ ִ ϴ. · Smalltalk ü α׷ , ü "ü̶ ΰ" ؼ Դϴ. ׸ ü ̷ ΰ Ϸ 'ü ΰ' ٺ ؼ ־ ʿ䰡 ֽϴ. ϴ ü ̶ ͵ ˰ , ü ַ ϴ ̱ , ü ̸ װ  ִ, ü  ٷ Ǵ ε鼭 äϴ ̶ ˴ϴ. Ÿ Ÿ ϵ Դϴ. ׷ ʹ ü ϳ ¤ ϰڽϴ. 'ü α׷' ǻͿ ̷ٰ ؼ, 'ü' ü ǻͿ Ǿ ִ ƴմϴ. ü 츮 ϻ Ȱ ƾ մϴ. ֳϸ ü̶ ü 츮 ִ 󿡼 Ͼ ǻͷ ذ ϱ ؼ εǾ Դϴ. ݺʹ α׷ֿ Ӹ , о ʽÿ. ֽϴ. ʴϱ? κ ͸ Դϴ. ؼ մϱ? κ ̳ 콺 Դϴ. ۼǰ 콺 ұ? ǻͷ ϴ մϴ. ʹ ϱ? Ӿ п ۰ ׸ ѷ ֽ . ǻͰ п ϱ ؼ Դϴ. ڵǸű⸦ ̿ ֽϱ? ׷ ڵǸű⿡  ϴ ̾ ʽÿ. 켱 ʿ ŭ ֽϴ. ׷ ϴ ( 'Ŀ') ̸ ߸ ϴ. ׷? ('Ŀ'?) ɴϴ. ø ˴ϴ. ⸣ ֽϱ? () Դϱ?  ? Դ  ɱ? , ̷ ͵ ʿ , ư Ư ֽϴ. ϴ... ٶ ϳ ְ "ֿ !"ϸ ø ޾Ƽ ൿմϴ. ȶϸ ø ̰, ׷ Դϴ. Ʒϱ⿡ ޸ . :) ϴ. ǻ翡 Źմϴ. ׷ ǻ ¸ ľϰ ó Ἥ ݴϴ. 'ü غ'̳ '' ʿ ־ϱ? ǻ翡 Ź Դϴ. մϴ. ǻ簡 ǰ θ ϸ ˴ . 㳪 ǻ簡 ʰڽϱ? ϸ ǻ翡 Źϸ Ǵ Դϴ. ü(object) ǥѴٸ '' Դϴ. ǹ̿ ִ ǿ մϴ. (ڪ) ڷ Ǯ " ִ "̶ ֽϴ. ݱ տ üԴϴ. , ۼ, 콺, ڵǸű, , , , ִ , 'ǻ' , 'ü' Դϴ. ϳ ϴ. ڱ մϴ. ʿ ٰ Ǵ 鵵 ڽ Ҹ ϰ ֽϴ. ٽ ϸ, ü ڽ ִٰ ֽϴ. ü ڽ ν ư ִ ϴ. ü ִµ, ü ڽ ٰ ô. ϻҶϰ ̴ ڿ , ̷ӱ մϴ. , ü ֽϴ. ü  ϱ ؼ, ü __ ø ־__ մϴ. ۼ ǻͿ Էϱ ؼ ۼ __ ־__ մϴ. ۼǿ " " ø Դϴ. ʹ ǻ ߾óġ(CPU) ø ޾ ̴ ׸ (graphic card) ÷ ȭ鿡 Ѹϴ. ڵǸű ͵ ϴ. 츮 ְ ðڴٰ ϴ Դϴ. ڵǸű . 츮 ˾Ƶϴ. 츮 ˾Ƶ ü 츮 (ڪ) ø ϴ. ׷ ˾Ƶ ִ ü, 츮 '' ø ϴ. ǻ ͵ ϴ. 忡 'ø ' ǥ Ⱑ Ƿ, 'ġḦ ŹѴ' ٲ ͻ , δ 츮 'ǻ' __ü__ "ġ ޶" ϴ ٸ ٰ ϴ. ̿ ü ÿ Դϴ. ٽ ϸ, 츮  ü ϱ ؼ, ݵ ü ø ־߸ Ѵ Դϴ. ü ø ν  մϴ. ü Ư ֽϴ. Ư "ٸ , , ϳ..." ְ, 콺 Ư "տ Ǿ ְ, Ǵ ߰ ִ" Դϴ. ü ü ִ Ư ¿˴ϴ. '' ' ' ̶ ϴ ִ Ư ٸ ڱ 鸸 ִ Դϴ. ǻ Ȱ Ư ִٸ, 츮 ġ϶ ε, ü Ư ٸ " ޶" ʽ ? :) ü ڽŵ鸸 Ư ְ, Ư ᱹ ü ݴϴ. ׷ ü ٷ Ư ü ֽϴ. 'ۼ' '콺' "츮 ǻ Է½ų ִ Ư" ֽϴ. '' 'Ǫ' ٸ Ư ִ ü, '' ִ Ư ֽϴ. ̿ Ư ִ ü  (class) ֽϴ. ' ´' ٴ Դϴ. '콺' 'ۼ' "Է ġ" , '' 'Ǫ' "" , ٽ '' '' "" ֽϴ. 'Է ġ', '', '', '' '' ̶ ˴ϴ. , ü ڽ ִ (class) ֽϴ. ߽ϱ? ۵ ϴ 'ü' Ư κ ְ ֽϴ. ü ִ ΰڽ ϴ. ݱ ۰ Ǿ ñ ϴ. - ü ִ. - ü ø ν ڽ Ѵ. - ü Ư ִ. Ư ü ´. - Ư ü '' ִ. ü ڽ ִ. Ǽ̽ϱ? ָϴٰ Ͻ 𸣰ڽϴ. ׷ٰ ̰ ܿ ʽÿ. ߿ ǵ ܿ ƴ϶, Դϴ. ٷ [] 츮 ݱ ü Ư Smalltalk ü Ǵ ν Դϴ. ... :[] Smalltalk #6 ڷ: [13] :ȫ (ȵ巡) 1998-12-01 11:10 ȸ:213 Smalltalk #6 1998. 11. 30. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 𿡼 츮 ü ؼ 밭 ƺҽ ϴ. ⼭ ⵵ ʾҽϴ. ϱ? Ͱ ʾҽϱ? ̷ ٴ ִ Դϴ. 츮 𸣴 ˰ ߻ ٴ Ǵ , װ Ӹ ͵麸 ξ ٴ ֽϴ. 𿡼 Smalltalk ü Ѻ ׷ν ü ü⿡ մϴ. -------------------------------------------------------------- δ뿡... Ӵ㿡 " δ뿡 ƶ" ֽϴ. Smalltalk ˴ϴ. Smalltalk Ű ؼ ⺻ (workspace) ʿմϴ. ׷ ο ̳ , ׸ ο ͸  ۾ ϸ ٴ Դϴ. ׷ ߿ ۾ ϱ⵵ ϰ, ߴ ɾ ״  ֱ ſ Դϴ. ο [, [], [ݻ] ۵ ׻ Ϳ ϵ սô. ----------------------------------------------------------- 2.2.1. 丷 ϱ ---------------------- "1.3"𿡼, 츮 Smalltalk ۼ Ѻҽϴ. Smalltalk , ־ ϱ? ﳪʴϱ? , Էϰ (block) , , ϳ ۼ踦 ׽ϴ. Smalltalk ϴ ⺻ ̾߱ ֽϴ. ׸ ӻ ٸϴ. [ݻ] Smalltalk ̷ ࿡ ¤ Ѿڽϴ. ؼ  ϴ ʿ䰡 ʰڽϱ? Smalltalk " Ѵ"(execute the command) ʽϴ. "丷 Ѵ"(evaluate the expression) մϴ. ⼭ '丷'̶ "Smalltalk ɵ ̷ "(the pieces of Smalltalk's code) Դϴ. Smalltalk ̷ 𸣰, ڵ Smalltalk ʸ ϰڽϴ. "θ θ!"̶ ֵ... ư, Smalltalk 丷 ϴµ Ʒ ٸ ֽϴ. ========================================================== * ϱ(Evaluating): ״ "Smalltalk Ѵ" Դ . 丷 ϸ, 丷 Smalltalk ˴ϴ. ڿ عϴ. ٴ ü ߿ ϴ Դϴ. Workspace > Evaluate It ޴ ϰų ۼ踦 մϴ. * (displaying): 丷 ϰ, Ϳ ̸ Ÿϴ. ַ ڿ ߿ ϴ. ַ ǰ. Workspace > Display It ޴ ϰų ۼ踦 մϴ. * Žϱ(inspecting): 丷 ڿ "ü Ž "(object inspector) ؼ ݴϴ. ſ ϰ , ̸ ߰ ɰ ϰ մϴ. Workspace > Inspect It ޴ ϰų ۼ踦 մϴ. ========================================================== ׷ ⸦ 丷 ϴ ӻ ˾ƺ ϰڽϴ.("1.3" ̶ ſ Դϴ.) 켱 丷 ֽϴ. 1 + 2. Smalltalk 丷 ϱ ؼ 丷 ̸ ؾ մϴ. ׷ 丷 ϵ Ǿֽϴ. ׷ Dolphin Smalltalk մϴ. װ ٷ " " Դϴ. 丷 ٷ ̷ ̸ ʿ ٷ ִٴ Դϴ. -------------------------------------------------------------- Dolphin Smalltalk ƴ ٸ Smalltalk ⺻ ʽϴ. Dolphin Smalltalk Smalltalk MT 쿡 Ǵ ϴ. ----------------------------------------------------------- , ׷ 丷 غô. Workspace > Evaluate It ޴ , ۼ ۼ踦 ̿ؼ 丷 ô. 1 + 2. "ƹ Ÿ" ƹ Ÿ ʾҽϴ. ⼭ 츮 丷 ϱ , ʾҽϴ. ׷Ƿ ̿ Ÿ 翬 . ׷ ߴ 丷 ô. Workspace > Display It ޴ ϴ, ۼǿ ۼ踦 ˴ϴ.  Ǿ ϱ? 1 + 2. 3 "3"̶ ̸ ü Ÿϴ. ̿ '' 丷 ȭ鿡 ѷݴϴ. 쿡 ̸ "3"̶ ٷ Դϴ. 丷 Ž ô. Workspace > Inspect it ޴ ϴ, ۼ踦 Ͽ 丷 Ž ô.  Ǿ ϱ? 1 + 2. "Ž Ÿ" 丷 Žϸ "Inspecting a SmallInteger" Ž Ⱑ Ÿ Դϴ. â "self", â "3" Ÿ ε, ̰ 츮 "3"̶ Žϰ ִٴ ǹ Դϴ. ׷ "1 + 2." ϱ, , Žϱ  ϰڽϱ? , ̹ 쿡 Ⱑ մϴ. ϱ ƿ Ÿ ʾұ , Žϱ "3"̶ Ͽ Ž⸦ Ǵ ̹Ƿ, ᱹ ̿ Ϳ ѷִ Ⱑ ˸ Ǵ Դϴ. 丷 ϰ, , ׸ ŽϿ ʽÿ. ׸  ô. Sound beep. Sound 丷 ǻ Ŀ '!'ϴ ȣ ߻ŵϴ. Ҹ ǻ Ҹ ī Ŀ Ǿִ ȮϽʽÿ. ̹ 丷 ϱ, , Žϱ ߿  ϰڽϱ? , 츮 Ϸ ϴ ô. 츮 ȣ ;ϴ. ٸ ʿġ ʾҽϴ. ϱ 쿡 ȣ ϰ ٸ Ͼ ʾҽ . ϴ ˸ ϴ. ߽ϱ? ȣ 鸮 "Sound" ̿ Ϳ ϴ. Sound? Ҹ? 丷 и Ҹ ϴ. ׷ٰ ȭ鿡 "Sound" ڰ ǥõ ʿ ϴ. Žϱ Դϴ. ռ Žϱ 뵵, " ϰ κ ɰ ʿ " ߽ϴ. ׷ ⼭ ϱ? "Sound" ϴ Žغ Ÿϴ. Oh, my God! ȣ 鸮 ʿ ̻ ʹ ϴ. ᱹ 丷 ׳ ϱ⸸ ϴ ذå̾ ϴ. 丷 ϰ, 캸, ׸ Žغô. Ʒ 丷 Smalltalk ȯ濡 ϴ (class) Ͽ (sorted collection) Ƴ մϴ. Class allClasses asSortedCollection ϴ 丷 ϱ⸸ ϸ ƹ ȭ Ͼ ˴ϴ. ׷Ƿ ó ˾ƺƾ Ȳ ϱ մϴ. ׷ ̹ 丷 ô. "1.3" 𿡼 Ÿ ó, Ϳ µ ƴ Դϴ. ̰ Ϳ ǥϱ ʹ ߻ , "...etc..." ǥð پ, ̴ Ϳ ǥõ ݴϴ. 丷 ͸δ ϴ. 丷 Žغô. ׷ "Inspecting a SortedCollection" ̶ ŽⰡ Դϴ. Ž⸦ ̿ϸ ռ 丷 ξ ϰ ֽϴ. ̷ 丷̶  Ŀ , , Žϱ 뼺 ޶ϴ. 츮 Smalltalk 丷 Դϴ. ׷ 丷  ϰ ٵ, ° ̸ ʰ ǽ ϰ 丷 ϴ Դϴ. ׸ 붧 '丷 Ѵ' ӿ "丷 Ȳ ϰ ϰų ų ŽѴ" ԵǾִٴ ͵ ˾Ƶνñ ٶϴ. -------------------------------------------------------------- ٸ Smalltalk...? Dolphin Smalltalk ƴ ٸ Smalltalk 丷 ϴ Ŀ "ϱ", "", "Žϱ" մϴ. ׷ ϴ ٸ ֽϴ. ̸׸, Smalltalk Express Smalltalk/V 쿡, "ϱ" 'DO It', "" 'Show It', "Žϱ" 'Inspect It'̶ θϴ. ׸ ۼ , , մϴ. ׷ ⺻ Ȯ ˰ , Dolphin Smalltalk ƴ ȯ Ȳ ʰ Դϴ. ߿ ʰ ưưؾ Ѵٴ Դϴ. ----------------------------------------------------------- ... :[] Smalltalk #7 ڷ: [14] :ȫ (ȵ巡) 1998-12-01 20:01 ȸ:208 Smalltalk #6 1998. 12. 1. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ 2.2.2. ! ! ! ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 2.2.2. ! ! ! ------------------ ǻͰ ó " ϱ "̾ϴ. Ⱑ ǰ ,  ϸ ǥ Ȯ ܳϿ Ǯ Ͽ ǻͰ ߵǾ . ǻͰ ִ ߿ ⺻ Ǹ鼭 ߿ ϴ , "" Դϴ. 츮 Smalltalk ̷ ߿  ̷ ؼ ˾ƺ ϰڽϴ. "1 + 2" Ͽ "3"̶  ڽ Դϴ. Ĵ ̸ δٴ ֵ Դϴ. ^^: ׷ 츮 ² 丷 ٲ  ô. ̸׸ " 1 + 2 . " 丷 Smalltalk  ϰ ұ? ҿ̶, 丷 캼? 1 + 2 . 3 "3"̶ Խϴ. ׷ ó ϸ ? Ʒ 丷 ٷ Ǿֱ , 丷 Ϸ ٿ (block) Ѵٴ , ؾ ʾҰ? ----------------------------------------------------------- 1 + 2. 3 ----------------------------------------------------------- ϱ? "3"̶ Ÿϴ. ᱹ 丷 ĭ ų ٲ , ̸ ϱ⸸ ϸ ƹ Ѵٴ ֽϴ. ׷ ߰ ĭ ְų, ڸ ٰ ٲٰ ̾ 쿡 Smalltalk ڵ ϳ ƴ϶ __ __ ϴ. 丷 ʽÿ. ----------------------------------------------------------- 1234 5678 + 1. [ ] "no period at end of statement 5678" ߸ ߻ ----------------------------------------------------------- 丷 ϸ " " Ͱ ߸ ˸ ް ˴ϴ. ׸ ߸ ִ "5678" κп ̰ ϴ. ߸ ˸ غ "5678 ħǥ ϴ" Ǵ , ᱹ ⼭ "12345678"̶ ߰ ٲپ  ߸Դϴ. 丷 ĭ ְų ٲ ߰ ־ ǰ, , ׸ '+' (operator) ̿ ִٴ ֽϴ. ݱ 츮 ؼ ˾ƺҽϴ. , , Smalltalk  ϴ ˾ƺô. Ʒ 丷 Ȯ ʽÿ. 4 - 1. 3 "" 2 * 2. 4 "" 6 / 2. 3 "" "+" "-" п ȣ ״ մϴ. ׷ "*", "/" ȣ մϴ. Smalltalk 츮 ϴ ⿡ ϴ. 丷 ô. 25 // 3. 8 " " 25 \\ 3. 1 " " "//" մϴ. ݸ "\\" մϴ. 25 = (3 * 8) + 1 ̹Ƿ, 丷 "8" "1" ְ? ݱ 츮 Smalltalk Ģ (, , , ) ҽϴ. ô. Ʒ 丷 Ȯ ʽÿ. 1 + 1 + 1. 3 2 * 2 * 2. 8 5 - 1 - 1 - 1. 2 12 / 3 / 2. 2 ڸ ִ ĵ Smalltalk ſ Ǹ Ǯ ־ϴ. ׷ Ųٷ, ̹ ־ 丷 غô. ־ ϴ? ׷ ϳ ̷ 丷 ֽϴ. 1 1 "1" ϳ 丷Դϴ. "1" ɴϱ? "1" "1" ۿ ڽϱ? :) () ״ Խϴ. ׷ ()? -1 -1 ͵ "-1" Ȱ "-1" Ÿϴ. (ʹ û 丷 ϰ ־?) ׷ ̹ û 丷 غ. 4 - 6. -2 2 * -3. -6 ٿ , ų ڽ 꿡 Ǵ Smalltalk ſ Ǹϰ(!) ϴ. ϱ, 200 (factorial) Ŷ ִ Smalltalk ѳ η ϸ? :) ׷ Smalltalk Ӹ ô. ݱ ̸ , ̸ ߽ϴٸ, ݺʹ ̷ ڵ ,  ô. ü Smalltalk  ϱ? , ϱ 켱 ʽÿ. Ʒ Smalltalk Ǯ Ȱ ñ~~~? 1 + 2 * 3 2 * 3 + 1 ""! 'ƴϿ'ýô. ׷ ׷ 丷  . 1 + 2 * 3 9 2 * 3 + 1 7 ? "1 + 2 * 3" "9"? , ̰ ߸ƾ! Smalltalk Ӹ ߳! ! , Ȳϴ , ϴ ϰ, ̾߱⸦ ϱ ǹ̸ Ȯϰ ʿ䰡 . . ݲ Ե "" , װ ΰ ϸ, '+', '-', '*', '/', '\\', '//'ó  , Ÿ ȣ ''(operator) θϴ. ׸ ̷ 꿡 Ǵ ''(operand), Ǵ 'ǿ' θϴ. ׷Ƿ "1 + 2" '+' "" ϰ, '1' "+ ", '2' "+ " θ Ǿֽϴ. "1 + 2 * 3" 츦 ô. Ŀ ڴ '+' '*' ִµ, ׷ ϱ? ̰ ݹ ˾Ƴ ƽ . ֳϸ, '+' '*' ߿ ϳ ǰ μ Ȯ ֱ Դϴ. "1 + 2 * 3" Smalltalk ϶ ߴ ϰԵ "9" ƢԽϴ. Smalltalk Ʋ ɱ? ׷ , ٸ ϸ ̰ ֽϴ. '+' '*' ߿ ǴĿ "1 + 2 * 3" ޶ϴ. * '+' ȴٸ...? "1 + 2" ǰ "3 * 3" Ǿ "9" 翬 ! '+' "1" "2", '*' "1 + 2"( "3")! * '*' ȴٸ...? "2 * 3" ǰ "1 + 6" Ǿ "7"̶ 翬 ! '+' "1" "2 * 3"( "6"), '*' "2" "3"! ̷ "1 + 2 * 3"̶ '+' ϴ '*' ϴ Ŀ ޶ ˴ϴ. 򰥸? '*' '+' 翬 Ǿ Ѵٰ ϰ, ռ ߵ װ ! и Smalltalk '*' '+' ߴٴ ̾߱! ׷ Smalltalk Ʋ°? ׷ ʽϴ. "θ θ!" ׷ Ƿ Smalltalk Smalltalk Ѿ߰? и ð 츮 '+' '*' ϶ ϴ. ׷ Smalltalk '*' '+' ߽ϴ. ̷ ̰ Ͼ , ٷ " 켱 "(operator's precedence) Դϴ. ڰ ̴µ, '켱 ' ֽϴ. ̸׸ '+' '*' '*' Ѵٴ Դϴ. Smalltalk 켱 ⺻ ʽϴ. ϴ ־ Smalltalk __ʿ __ ϴ. , Smalltalk 켱 ʰ, ʿ ؼ ڵ ٴ Դϴ. ׷.... 1 + 2 * 3 3 * 3 9 2 * 3 + 1 6 + 1 7 ̶ Ǵ Դϴ. 󱸿? ȴٰ? Ӹļӱ İ " " , ο ϴ. Smalltalk ׷ٴµ  ڽϱ? Smalltalk ó  Smalltalk ϰ ϱ? , ᱹ ϽŴٸ ¿ ,... Smalltalk  Ŀ ־ Ⱦմϴ. ׳ ܼϰ տ óϰ óѴ, װԴϴ. ƽϱ? -------------------------------------------------------------- 켱 ڰ C C++ 40 Ѵ ڸ ֽϴ. ̵ з ִµ, 켱 ٸ Ű ֽϴ. ϴ ʿ ϴ , ݴ ʿ ϴ ֽϴ. ̸ "ռ"̶ θµ, ư ڵ , 켱 , ռ зϰ Ǹ ä ǥ ϳ ϴ. ~ Ӹ! ٸ 쵵 ٸ ϴ. ü ĽĮ C/C++ ٴ մϴ! ^^: ⿡ 켱 ֽ . ռ 翬 ϰ. C/C++ ĽĮ ϴ ̶  켱 ̹ϰ ٸ Ʋ (source code) 찡 (ڵ մϴٸ..) ̽? Դϴ. ĽĮ ٸ ϴ. ó ڸ ִ κ 켱 Ģ ϰ ֽϴ. ̷ ̶ , ó  ϴ ̶, Ư ϴ(!) C/C++  ϴ ̶, 켱 Ȥ ġ մϴ. ư ڵ ± . Smalltalk 켱 մϴ. ٷ ڿ " 켱 "(method's precedence) װε, ٸ ó ׷ ʽϴ. ׷ ̸ ñ... ----------------------------------------------------------- Smalltalk Ͱ ٸ ؼ ڽʴϱ? . ó ص ׷ ܱ? 1 + 2 * 3 - 4 + 5 * 6 - 7 - 8 / 9 "?" ʽÿ. ^^: ׷ Smalltalk ʿ Ⱦ鼭 ϸ ǹǷ ſ մϴ. Ʒ Smalltalk  Ǫ ݴϴ. 1 + 2 * 3 - 4 + 5 * 6 - 7 - 8 / 9 ~~~~~ 3 * 3 - 4 + 5 * 6 - 7 - 8 / 9 ~~~~~~~~~ 9 - 4 + 5 * 6 - 7 - 8 / 9 ~~~~~~~~~~~~~ 5 + 5 * 6 - 7 - 8 / 9 ~~~~~~~~~~~~~~~~~ 10 * 6 - 7 - 8 / 9 ~~~~~~~~~~~~~~~~~~~~~ 60 - 7 - 8 / 9 ~~~~~~~~~~~~~~~~~~~~~~~~~ 53 - 8 / 9 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 45 / 9 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 5 ſ ִٴ ̴ϴ. Smalltalk ó Ȱ 켱 Ģ ־, ϴ 켱 Ģ ֽϴ. ̴ ᱹ ٴ ̰, ׷ ٸ α׷ ϴ ٰ ǽϴ. ̷ 켱 Ģ óϱ ؼ Smalltalk(Ȯ ǻ) ؾ ϵ ̰... Smalltalk ٴ Դϴٸ.... 쿡 '+' '*' Ǿ ʿ䰡 ֽϴ. ȣ ϸ ˴ϴ. 1 + (2 * 3) 1 + 6 7 ̷ ߿ Ǿ κп Ұȣ ѷָ, Smalltalk ʿ ʰ, ȣ ִ ϰ ˴ϴ. ̰ 켱 Ģ ͺ ξ Ȯ ְ ݴϴ. ȣ 켱 Ȯ ٰ ؼ ƹ ȣ ٴ ƴմϴ. (2 * 3) + 1 6 + 1 7 ȣ Ȱ "7"̶ ϴ. Ʒ ȣ ڽϴ. (1 + 2 + 3). 6 (1) + 2 3 (((1 + 2) + 3) + 4) + 5 15 (((((1))))) 1 ȣ ˾ƺ, 丷 ȣ ȣ · ٽ ֽϴ. Ƹ Ȱ Դϴ. ׷Ƿ (?) ʴ ǰ, ǰ ϴ. ( ȣ ִٴ???) 翬 ȣ ¦ ߾ մϴ. 丷 Ǵ, ׷ Smalltalk źϴ 丷Դϴ. (1 + 2 ȣ ?? 1 + 2) ȣ ?? 1) + (2 ? , ? (1+) 2 "1+" ΰ? δ . 丷 Smalltalk źϴ ƹų ϳ ֽϴ. (1 + 2 "expecting ')'"̶ ߸ ߻ϰ ˴ϴ. Smalltalk ģϰԵ 𿡼 ȣ ˷ݴϴ. ^^: Smalltalk  Ǽ ó ߸ ˸ Ÿ , "1.5" 𿡼 ̾߱ߴ " â"(walkback window) ߸ ˷ݴϴ. Smalltalk ſ ýԴϴ. Ǽ ϴ Smalltalk ü ׾ Դϴ. Smalltalk ̰ ֽϴٸ, ǰ ƴ ̻ Ǽ ؼ Smalltalk ڻ쳪 Դϴ. ٲپ ϸ, и η Դϴ. "̷ ϸ  ɱ?" ϴ Ž Smalltalkó а ü Ӱ ȭ ִ ȯ濡 ʿ ̱ Դϴ. Smalltalk ̱⿡ ϰ 丷 ʽÿ. Smalltalk (image) ִٸ File > Save Image ޴ Ͽ ڿ ϵ սô. ߴµ Smalltalk ׾ٰ ڸ . Processor := nil. 丷 ϸ "Unrecoverable Stack Overflow Error..." ϸ Smalltalk Դϴ. <Ȯ> ߸ ָ Smalltalk ȯ ü ǵư ˴ϴ. Smalltalk ױ ٽ Smalltalk ϸ ߴ ̿Ͽ ü ǻ Դϴ. Smalltalk ״´ٰ ü Ƴ ʽϴ. Smalltalk ڽ , ü踦 ʽϴ. ׷Ƿ Ͻʽÿ. ׸ ǼϽʽÿ. ׷ Ǽ ŭ Ƿ Դϴ. Ǽ ؼ Smalltalk (image) ̻ غ ξ߰? ^^: ("1.4.2" ) .. :[] Smalltalk #8 ڷ: [15] :ȫ (ȵ巡) 1998-12-03 20:54 ȸ:205 Smalltalk #8 1998. 12. 3. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ 2.2.2. ! ! ! 2.2.3. ü ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 2.2.3. ü ------------------ 츮 ݱ '1', '2', 3'ó Ҽ ٷ Խϴ. п () θϴ. 츮 ݱ (class) ϴ ٷ Դϴ. () ""Դϴ. ׷  ? ð 츮 ϴ  Ÿ ϱ? ....,-3, -2, -1, 0, 1, 2,.... ó Ÿϴ. '-3', '1', '2' ̶ Դϴ. ռ ڴ "츮 ݱ ٷ" ߴµ, ٷ ƴ϶ ִ ٷ Դϴ. ٽ ϸ "" ϴ ٷ ʾҽϴ. ? ׷ ٸ ô. մϱ? մϴ. ׷ " Դ´" ֽϴ. ׷ ϰ ʽÿ. "" __̸__ Դ ƴ϶, "" ҷ ϴ  Ծ Դϴ. մϱ? մϴ. ׷ 츮 " Ѵ" , "" ϴ (class) ϴ ƴ϶, '' ҷ ü(instance) ϴ Դϴ. ʽ . "" ϴ 繰(object) 繰 ϱ ؼ ٿ ̸ Դϴ. (̾߱Ⱑ ڱ ö Ǿ? --:) ̸ Դϴ. "ȫ"Դϴ. ׷ ȫ̴ ""Դϴ. ̶ __(class)__ , ׷Ƿ ȫ̴ ̶ __ü(instance)__Դϴ. ׷ ƽϱ? Ӹ ̾߱⸦ ô. Դ ̾߱Դϴ. :) ؾ  ̽ϱ? ؾ , ؾ ʿմϴ. ׸ ؾ ʿ . ؾ Դϴ. 켱 ؾ Ʋ ְ غ ֽϴ. ׸ Ѳ ݰ ҿ ؾ .( 丮ðΰ? ) , ⼭ ؾ Ʋ (class)Դϴ. ׸ Ʋ  ؾ ٷ ü(instance) Ǵ Դϴ. ƽϱ? , ٽ ̾߱⸦ ô. 츮 ݱ Ҵµ, '' ü ƴ϶, '1', '2', '3' ü(instance) Դϴ. 츮 ̷ (class)  θ Դϴ. ⼭ 츮 (class) ü(, instance) ؼ ̾߱⸦ ؾ մϴ. 𸣰, ݸ ʽϴ. ϴ ü ֽϴ. 1, 2, 3, 4, -1, -2, -3, -4,... ̷ ____ __ü__ Ǵ Դϴ. Ųٷ ô. 츮 ü Ƽ ϴ. 1, 2, 3, 4, -1, -2, -3, 4-,... "Ҽ " ֽ ϴ. ׷ ̷ ִ ü "" ̸ θ Դϴ. ü 踦 ľ ְڽϱ? 𸣰 ư ó оô. ׷ и ΰ Դϴ. ü ߻ ̹Ƿ, 򰥸 翬 𸣰ڽϴ. , ü ؼ Ҵٸ, ǽ սô. տ 츮 ü ̾߱⸦ , " ü ִ" Դϴ. ﳪʴϱ? 츮 ٷ 1, 2, 3, -1, -2, -3 ٷ ü(object)Դϴ. ᱹ 1, 2, 3, -1, -2, -3 ִٴ Դϴ. ׷ ̵ 1, 2, 3,... ü  ? ϳ ? "" ִٰ ٷ ߽̾߱ϴ. ׷ 츮 ̷ ؼ "ü ʴ  ϴ" ֽϴ. ׷ '1' ؼ "ʴ  ϴ" ô. 丷 Ͽ ô. 1 class SmallInteger ϱ? '1' ߽ϱ? "SmallInteger" ߽ϴ. "Integer", ٷ "" ʾ " " ߽ϴ. ׷Ƿ '1' " "(SmallInteger) ü(instance) ֽϴ. ⼭ ϴ. 1 SmallInteger ü, ׷ Smalltalk Integer ϱ? и " " "" ϹԴϴ. ׷Ƿ и " " Ϲ , "" 𸨴ϴ. ׷ 츮 "" " Ϲ ΰ" ʿ䰡 ֽϴ. 츮 ü ƴ϶ Դϴ. 丷 ô. SmallInteger superclass Integer "class" "ʴ  ϴ" ̾ٸ, "superclass" " ٷ ִ ̳" Դϴ. ? ü װ ? ϸ (superclass) ٷ ϴ մϴ. "", "", "Ĺ" , "" "" , ""̶ ٽ "Ĺ"̶ ֽϴ. ----------------------------------------------------------- Ĺ (ü) ----------------------------------------------------------- ׸ (hierarchy) , "" "Ʒ" 谡 ̷ϴ. , '' '' ""(class)̰, '' '' " ü"(instance)Դϴ. ¿ 'Ĺ' '' ""(superclass)̰, '' 'Ĺ' "Ʒ"(subclass)Դϴ. ׷ ⸦ , ü '1' 'SmallInteger', 'Integer' 踦 Ʒ ׷ô. ----------------------------------------------------------- Integer SmallInteger 1(ü) ----------------------------------------------------------- 'SmallInteger' '1' ""̰, '1' 'SmallInteger' "ü" ϴ. ¿ 'Integer' 'SmallInteger' ""(superclass)̰, ݴ 'SmallInteger' 'Integer' "Ʒ"(subclass)Դϴ. ƽϱ? ׸ 귯 ľϸ "Ʒ" "" ݹ ľ Դϴ. , ݱ 츮 '1' 'SmallInteger' "ü" ˾, 'SmallInteger' 'Integer' Ʒ ־ϴ. ׷ 'Integer' ϱ? ׸ ...? ̹ ߽ϴ. ״ Ծ ô. Integer superclass Number Number superclass ArithmeticValue ArithmeticValue superclass Magnitude Magnitude superclass Object Object superclass nil ôٽ 츮 (Integer) Ͽ ᱹ "ü"(object) ö󰬽ϴ. Object "Object" Դϴ.  ִı? "Object" ׷ ߽ϴ. Object superclass nil "nil" "" Դϴ. "Object" ߴ Դϴ. 츮 "nil" ""̶ θô. ׷ ݱ ˾ƺ ٱ׸(hierarchy diagram) ׷ Ʒ ˴ϴ. <׸ 2-1> SmallInteger ٱ׸ ----------------------------------------------------------- Object(ü) Magnitude(ũⰪ) ArithmeticValue() Number() Integer( SmallInteger() 1(ü) ----------------------------------------------------------- ׸ 츮 ֽϴ. "1 ̰, ̰, ̸, ̰, ũⰪ̸ ü̴." 츮 " ̸ ÿ Ĺ̴" ִ Ͱ Ȱ ٰ ֽϴ. ׷ '1' ÿ '' ֽ . '1' ٷ "ü" ͵ Ȯ ֽϴ.. Smalltalk üԴϴ. ׷ ⼭ ǹ ϳ ϴ. " "(SmallInteger) ִٸ ΰ "ū "(LargetInteger) ־ ǽϴ. '1' ۴? ׷ '1' ū Է ? , ô. 2 class SmallInteger 3 class SmallInteger 10 class SmallInteger 100 class SmallInteger 100000 class SmallInteger 100000000 class SmallInteger 1000000000 class SmallInteger 9999999999 class LargeInteger 10000000000 class LargeInteger ãҽϴ! SmallInteger ݴ밡 Ǵ LargeInteger ֽϴ. ׷Ƿ (Integer) ؼ ٱ׸ ׷ ֽϴ. ----------------------------------------------------------- (Integer) SmallInteger() LargeInteger(ū) ----------------------------------------------------------- 츮 鼭 ־ϴ. 1) class - ü  ִ°? 2) superclass - ΰ? ⼭ ִ ô. ü ƴ϶ ؼ superclass  ɱ? ô. 0 superclass " â " "SmallInteger does not understand #superclass" â(walkback window) Ÿ ֽϴ. 츮 ϸ " superclass ˾Ƶ ϴ" ĺ ֽϴ. ̴ Smalltalk 츮 丷  ߸ ־ ˷ݴϴ. ̷ Ƣ â ݾƵ ϴ. ׷ â ݱ ü â о սô. â â Ǿ ֱ Դϴ. տ 츮 Ѱ ˾ҽϴ. ٷ superclass ְ, ü Ѵ. Դϴ. '0' ü е ó ٽ оʽÿ. ü ڲ 򰥸 ¿ ϸ ū ȥ Դϴ. ׷ "class" ִ ˾ƺô. 丷 Ȯغô. 1 class SmallInteger SmallInteger class SmallInteger class Number class Number class Object class Object class ϴ ؼ "class" ־ϴ. ׷ ϱⰡ ƽϴ. "ʴ ϴ?" Ǵµ, Smalltalk ̸ ڿ "class" ٿ Ÿ½ϴ. ̷ Դ Ϸ "Ǯ̰"(metaclass) ؼ ̾߱⸦ ϴµ, Smalltalk ϴ п ĩϸ Ŀٶ ȥ 帱 ֱ ⼭ ʰڽϴ. ׸ Ǯ̰ 𸥴ٰ ؼ Smalltalk ϴµ ̹Ƿ, Ǹ ¤ Ѿô. class ü ο ִ. ˸ մϴ. ݱ 츮 "class" Ͽ  ü ϴ ˾ƺҽϴ. ׷ 츮  ü ٿ ִ ˾ƾ ʿ䰡 ֽϴ. ٽ ϸ, ȫ̴ "л"̶ , ÿ ''̱ մϴ. ׷ "ȫ̴ ΰ?" ֵ, Smalltalk üԵ "1 ΰ?" ٷ ִٴ Դ . Ʒ 丷 ʽÿ. 2 isKindOf: SmallInteger true 2 isKindOf: Integer true '2' "true" ϴ. "true", "´" Դϴ. "isKindOf:" ϸ <׸ 2-1> ׸ Ⱦ鼭 Ȯ ֽϴ. 2 isKindOf: Number true 2 isKindOf: ArithmeticValue true 2 isKindOf: Magnitude true 2 isKindOf: Object true ׷ "isKindOf:" Ͽ Ʋ ô. 2 isKindOf: LargeInteger false 10000000000 isKindOf: SmallInteger false ü 츮 Ʋ "false", "Ʋȴ" մ . ̷ Ǵ, Ʋ Ʋȴٰ ̳ ɱ? --: ׷ Smalltalk 峭 ô. Smalltalk ˾ ̸ "isKindOf:"  ϱ ? 丷 ô. 2 isKindOf: Abcd "Error: undeclared Abcd ߸ ߻" Smalltalk "Abcd" ̸ ˾Ƶϴ. ׷ ߸ Ų . ᱹ Smalltalk "Abcd" ٴ Ǵµ, ׷ Smalltalk ִ  ? װ п ܵΰڽϴ. Ʈ, ݱ ߿ и ֽϴ. δ Ƹ .... ãƺʽÿ. :) ݱ 츮 ü(instance) (class) ؼ ˾ƺҽϴ. Smalltalk ü(object)̱ "2.1" 𿡼 ̾߱ "ü Ư" ״ ˴ϴ. " ü Ѵ" Դϴ. 츮 ̹ [ݻ]  ü ü ü  ϴ, ׸ ƴ ҽϴ. ϱ? Smalltalk ʿϴٸ ݱ ó ü ſ ȭ ֽ ϴ. 츮 ''(message) ؼ ϰ Դϴ. ü ൿ Ϸ  ø մϴ. 츮 ݱ ü ø Ƚϴ. "class", "superclass" ̰ "isKindOf:" ϳ ÿϴ. '+', '-' (operator)  Դϴ. 츮 ÿ  , Smalltalk ü  ø  ޾Ƽ ؼ ˾ƺ ϰڽϴ. -------------------------------------------------------------- ٸ ...? Smalltalk ü Դϴ. C++, Object Pascal ̹ ִ  ü Ͽ Ȯ Ϳ , Smalltalk ü Ӱ Դϴ. ü̶ м , ׸  Smalltalk Դϴ. ׷Ƿ Smalltalk ü ƴմϴ. '1', '2' ׷ üԴϴ. ü 츮 Ƶ ִ (message) , ü 츮 ؼ ˰ִ (method) ൿմϴ. ̰ ü Ư¡ ÿ Smalltalk Ư¡Դϴ. ڴ Simula 67 ؼ 𸣱 , ʷ (class) Simula  ̷ ü Ư ִ 𸣰ڽ . 㳪, Smalltalk ü ڷν մϴ. ܳ ü , Ǵ  ü ũ ۵ Smalltalk Ư¡ ߽ϴ. ̹ ۿ ̾ ͵ "Object Reflection"̳ "RTTI: Runtime Type Information" ̸ ̹ Java ٸ ݿϰ ִ κԴϴ. C++ Object Pascal ü ƴմϴ.  ṵ̈  ƴմϴ. '1', '2' ü ƴϱ ,  ϴ ü Ư ˴ϴ. C++ Object Pascal '1'  ִİ ⿡ ֽϴ. C++ Object Pascal ٺ  ü з Ű ¿ ԵǾϴ. ̵ δ뿡 ߽ϴ. װ ߸ ͸ ƴ, · ʿ ̻ ͸ Դϴ. Smalltalk ϸ鼭 , Smalltalk ſ ϸ մϴ. ̰ 'ü'̶ ϴ ϵǰ Դϴ. Smalltalk ̷ ü з ߱ϱ ܳ 鵵 ִٰ Ǹ, ε ǾԽϴ. ٷ ̰ ü ư ϰ ִٰ ڴ մϴ. ׷ ᱹ Smalltalk ü ̶ ƴ ϴ.  ȭ̶ Ͽ ü̶ 信 ϱ (compiling) ٵ ȭ  ٰ ڴ մϴ. ̰ Դϴٸ... ----------------------------------------------------------- ... :[亯/16] ü α׷ ڷ: [17] :ȫ (ȵ巡) 1998-12-06 03:19 ȸ:413 ȳϽʴϱ? ƴԲ ü  ؼ ϼ̽ϴ. ſ ̳׿. , ü α׷   , ׸ ׵ ϳ ޶ ̽ ϴ. ½ϱ? 켱 ü  ô. ü α׷ , ü(object) ߽ɿ ΰ α׷ ִ , ǻ α׷ֿ ü ִ  ŵϴ. 츮 (9) 'ü ' ֽϴ. ᱹ ü α׷ 'ü'̶ ̹Ƿ, ü̶ Ȯ ˾Ƶδ ߿ϴٰ մϴ. 帮, - ִ ü̴. -  Ǯ ü Ǯ ִ. - ü (class) Ѵ. - ü ڱⰡ  ؾ ˰ ִ. - ü  Ű ؼ ü ˰ ִ (message) ־ Ѵ. ׷ ü ڽ ˰ ִ (method) ൿ ϰ . - ü Ư(attribute, property) ִ. - ü ڱⰡ ˰ ֱ , ٸ ü ϴ, Ȱ ޼ ִ. ̸ (polymorphism)̶ Ѵ. б ļ л鿡 ø ,  л ,  л ٸ Ƿ . ̴ ' ģ' ϳ ÿ ü ٸ ǹѴ. - ̹ ִ ü ٸ ϰ , ü ʿ , ü ޾Ƽ ο ִ. ̸ Ӽ(inheritance) θ. ̷ ͵ ü ⺻ ̶ ֽϴ. 'encapsulation'(ĸȭ? . ؼ ãƳ ϴٸ...) ü ̳ 뼺 ˴ϴ. ü Ư ϴ α׷ ü α׷ ֽϴ. ü α׷  ' ü α׷ ' ְ, 'Ȯ ü α׷ ' ֽϴ. ڴ üθ α׷ ϰ ٶ󺸴 ν, Smalltalk Eiffel, Java , ڴ  ü ν, C++, Object Pascal ֽϴ. ̵ Ư¡ , տ 캻 ü Ư¡ Ÿ ٸ ̳ ǹ̸ մ . C++ ü ⺻ ľϸ Smalltalk ٸ ü  ϱⰡ ſ ٰ ֽϴ. Խǿ õ, ü վ ߽ Smalltalk  ؼ ¸ ø ֽϴ. ܼ Smalltalk ϴ ִ ƴ϶,  ؼ ü⿡ ϴµ ֽϴ. Smalltalk ٸ 鿡 ؼ ſ ֱ , α׷ ð ʿ䰡 ϴ. Smalltalk ü ̱ , Smalltalk ϸ ü Ǿ ֽϴ. ׷Ƿ оø ̾ ǽ Դϴ. ε ö Դϴ. ׷ ǽñ⸦ ٶϴ. :[] Smalltalk #9 ڷ: [18] :ȫ (ȵ巡) 1998-12-07 17:47 ȸ:192 Smalltalk #9 1998. 12. 7. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ 2.2.2. ! ! ! 2.2.3. ü 2.2.4. ÿ Ͽ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 2.2.4. ÿ Ͽ... ----------------------- Smalltalk ü(object)Դϴ. '1', '2' ڴ ̰ 丷 , ġ, ϰ ϴ (workspace), 丷 ߸ ˷ִ â (walkback window) Smalltalk ̷ ҵ üԴϴ. ̷ ü (message) ְ մϴ. ռ 츮 () ؼ ø ҽϴٸ, Smalltalk پ ü غǾ־ ø ٸ ֽϴ. ռ Ѵٴ 丷 ô. 1 class SmallInteger 1 + 2 3 1 isKindOf: Integer true "class", "+ 2", "isKindOf: Integer" ü '1' Դϴ. ٽ ü ö Ȳ ϰ ֽϴ. Smalltalk ũ ð ֽϴ. * ܸ (unary message) * 㸶 (binary message) * 踶 (keyworded message) "class"ó ̷ ø 'ܸ ' θ, "+ 2"ó οִ ø '㸶 ' θϴ. ׸ "isKindOf: Integer"ó ް ٴϴ ø '踶 ' θϴ. "isKindOf: Integer" 츸 캸 㸶 ÿ 踶 ð ޶ , 踶 ô ʿ信 ֽ ϴ. 5 between: 1 and: 10 true 丷 '5' "1 10 ̿ ִ ڳ"  踶 ٸ Դϴ. '5' 翬 '1' '10' ̿ ִ ̹Ƿ "true"(´) ϴ. ȶ 5! ^^: '踶 ' '' "踻" Դϴ. "踻"(kwyword) ãƺ " Ǫµ (ܼ) Ǵ "(ѱ۰ǻ, 1998, ѻ)̶ Ǿֽϴ. ׷ ÿ "isKindOf:", "between:", "and:" ٷ ڿ ִ  ǹ ִ 踻 Ǵ Դϴ. ׸ Smalltalk 踻 ݵ (:) ξ մϴ. , "踶 " "踻 ̷ " մϴ. Ʒ 丷 Ʋ 踶 Դϴ. 5 between 1 10 "踻 " 5 between 1 and 10 "踻 ݵ " 5 between: 1 and 10 "'and' 踻̹Ƿ ʿ" ׷Ƿ 踶 ø 踻 ݵ Ȯؾ մϴ. ׸ 踶 ô ʿϴٸ 󸶵 踻 ֽϴ. ٽ , 踻 Ѵٴ , ! ռ 츮 "1 + 2" 丷 ؼ ٷ鼭 ''(operator) ''(operand) ؼ ̾߱ ֽϴ. ''  Ÿ ȣ ϰ, '' 꿡 ʿ ̶ ߽ϴ. ׷ٸ 1 isKindOf: Integer "(1)" 5 between: 1 and: 10 "(2)" 츦 ڿ ô. (1) '1', 'Integer' Դϴ. (2) '5', '1', '10'̶ ֽϴ. ׷ (2) ڴ ϱ? ڴ "between:and:"Դϴ. 踶 ÿ ڴ ٷ 踻̶ ֽϴ. Smalltalk ƴ '' '' ʽ ϴ. ""(sender) "޴"(receiver), ""(parameter) մϴ. Ϲ 5 class 5 + 2 5 between: 1 and: 10 ̶ 丷 ־ , '5' "޴"(receiver) ϰ, "class", "+ 2", "between: 1 and: 10" (message) ϴ. ô ǥ(selector) (, parameter) ̷ ִµ, ߿ "class", "+", "between:and:" "ǥ" ϰ, ǥ ޴ ϴ '2', '1', '10' "" θϴ. "class" ǥ ܸ ̱ ƹ ڵ ʽϴ. ϴϱ µ, ǥϸ ׸ ϴ. <׸ 2-2> ޴, , , ǥ, ----------------------------------------------------------- ޴ _____ _____ 5 class ~~~~~ ǥ ޴ _____ _____________ 5 + 2 ~~~~~ ~~~~~ ǥ ޴ ______ __________________________________________ 5 between: 1 and: 10 ~~~~~~~~ ~~~~~ ~~~~ ~~~~~ | | +-----------[ǥ]-----+ ׸ ϴϱ 𸣰ڴٱ? (!) , ư Ӹ ñ ϸ ˾Ƶð? :) , ٽ ô. * ޴: ø ޴ ü մϴ. Smalltalk ޴̰ ոӸ Ǿֽϴ. * : ޴̿ մϴ. 丷 ޴̸ κ ð ˴ϴ. * ǥ: ϳ, ü  (method) ൿ ˷ֱ ˴ϴ. ǥ ܸ ÿ Ǵ "ܸ ǥ"(unary selector), 㸶 ÿ Ǵ "㸶 ǥ"(binary selector), 踶 ÿ Ǵ "踶 ǥ"(keyword selector) θ ֽϴ. * : ǥ Բ Ѱִ ߰ Դϴ. ޴̴ ǥ ؾ ϰ, ־ ڸ Ͽ  մ . ó Smalltalk 丷 κ ̷ , κ ̸ ִٴ ͵ ֽϴ. 츮 Smalltalk 丷 ε, ̵ Ѱᰰ ޴ ̿ ǥ, ڷ ̷ ÷ Ǿ ֽϴ. ݱ غ 丷 캸鼭 ޴, , ǥ, ڷ ô. 丷 ̷ ִ κе ̸鿡 ͼ սô. -------------------------------------------------------------- ٸ ...? C++, Object Pascal, Java ռ ̾߱ ޴, , ǥ, ڶ ״ ˴ϴ. ٸ Դϴ. 켱 C++ 캾ô. cout << "Hello, World!"; 쿡 'count' ޴̰ ǰ, '<< "Hello, World!"' ð ˴ . '<<' ̸(ostream::operator<<()), "Hello, World" '<<' Դϴ. ';' ħǥ մϴ. aPoint.create(1, 2); 'aPoint' ޴̸ , ׸ 'create' ǥ, '1' '2' ڰ ˴ϴ. C++ Ͱ  ü Ű ... pCar->go(FORWARD); pCar Ű ü ޴̸, κ ð ˴ . '.' ƴ϶ '->' , 'pCar' ̱ , Ͱ Ű ü  ؼ Դϴ. ĽĮ ڹ 쵵 뵿ѵ, Application.CreateForm(MainForm, TMainForm); System.println("Hello, World"); 'Application', 'System' ޴̹̿, κ ð ˴ϴ. ȣ ӿ ִ MainForm, TMainForm, "Hello, World!" ̸, CreateForm println ǥԴϴ. ó  Ǵ ٸ ü ֽϴ. ̰ C++, Java, Object Pascal 'ü ' Ҹ ִ ߿ Ұ ˴ϴ. ٸ 'ü'̶ Ǵ . ----------------------------------------------------------- -------------------------------------------------------------- 踶 ÿ ⵶ ٸ  Smalltalk "ܸ ", "㸶 ", "踶 " ϴ. κ ü Լ(function) (procedure) θٴ ֽϴ. ׷ ü Ѱ־ ڰ Smalltalk 踶 ð ξ б ϴ. aSubString := originalString.Copy( 10, 5 ); ٴ aSubString := original copyFrom: 10 to: 15 ֽϴ. between(5, 1, 10); ٴ 5 between: 1 and: 10 ξ бⰡ ϴ. ʹ δٰ Ͻô ôٸ ̷ 帮 ͽϴ. (source code) ϴ. ׷Ƿ бⰡ ϸ ϰ ϴµ ſ մϴ. 밡 ǥ ϴ . ----------------------------------------------------------- ... :[] Smalltalk #10 ڷ: [19] :ȫ (ȵ巡) 1998-12-09 21:27 ȸ:174 Smalltalk #10 1998. 12. 9. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ 2.2.2. ! ! ! 2.2.3. ü 2.2.4. ÿ Ͽ 2.2.5. 켱 ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 2.2.4. 켱 ----------------------- ٷ 츮 Smalltalk ø ٸ ִٴ ߽ϴ. ־ϱ? 5 class ܸ (unary message) 5 + 2 㸶 (binary message) 5 between: 1 and: 10 踶 (keyword message) ܸ ø Ÿ ؼ ϴ ǥ "ܸ ǥ"(unary selector), 㸶 ø Ÿ "㸶 ǥ"(binary selector), 踶 ø Ÿ ؼ ϴ ǥ "踶 ǥ"(keyword selector) θٴ ͵ ߽ϴ. 츮 Smalltalk Ǯ ؼ  մϴ. 丷 ϳ ÷ ̷ ƴ϶ ̻ ø Բ ϰ ִٴ Դϴ. 1 + 2 * 3 ֽϴ. '+' '*' ǥ(selector) ֱ , ᱹ 丷 ø ϰ ִٴ ֽ . տ 츮 '+', '-', '*', '/' 㸶 ø ̻ 1 + 2 * 3 丷 ϸ '7' Smalltalk '9' ٰ ߽ϴ. 㸶 ð ̻ ʿ óȴٴ Ģ ߽ϴ. ׷ٸ ٸ ܸ ÿ 㸶 , ׸ 踶 Ѳ  óɱ? ̹ ˾ ߿ ٷ ̷ õ 켱 (precedence) ϴ. ̾߱⸦ ϱ , 켱 (Integer class) ü ִ ܸ ǥ ˾ƺڽϴ. 丷 ʽÿ. 1 negated -1 -1 negated 1 0 negated 0 123 negated -123 ǥ "negated" ø ޴(receiver) ȣ(ݬ) ٲپݴ . "negated" , "negated" ϴ. '0' 쿡 ȣ "negated" ؼ ƹ ȭ ״ '0' ϴ. 츮 ̹ "1.3"𿡼 ǥ "factorial"Դϴ. 0 factorial 1 1 factorial 1 2 factorial 2 3 factorial 6 4 factorial 24 5 factorial 120 6 factorial 720 ǥ "factorial" ޴̿ (ͭ, x!) մϴ. "6 factorial" "5 * 4 * 3 * 2 * 1" ϴ. ׷ "200 factorial" ϱ޼( δ Ʋ ̰) þ Ǵ Դϴ. "2000 factorial"̶ 丷 ô. Smalltalk "200" ƴ "2000" ? :) , ռ 츮 㸶 ǥ Ͽ 丷 ֽϴ. 1 + 2 * 3 9 ׷ٸ 㸶 ǥ ߴ ó, ܸ ǥ ٽ ǥ ? 丷 ô. 1 negated negated 1 "1" ϴ. ٽ 丷 ܸ ø ̻ ϴ ϴٴ ݴϴ. ׷ ° 丷 "1"̶ ־? ִ , Smalltalk ϴ Ĵ 츮 丷 Դϴ. 1 negated negated ~~~~~~~~~ -1 negated ~~~~~~~~~~~~~~~~~ 1 "1 negated" Ƶǰ '-1' ˴ϴ. ׷Ƿ "-1 negated" Ǿ "1" Ǵ Դϴ. ֵ ܸ ø ޾ ϸ 㸶 __ʿ __ óǴ ֽϴ. ׷ٸ ̹ factorial negated ǥ  Ʒó 丷 ô. 3 factorial negated -6 "-6" Դµ, 丷 츮 غ սô. 3 factorial negated ~~~~~~~~~~~ 6 negated ~~~~~~~~~~~~~~~~~~~ -6 "3 factorial" Ƶ˴ϴ. "6"̶ , "6 negated" Ǿ "-6"̶ ˴ϴ. ܸ ǥ 㸶 ǥ ʿ ʷ ǥ óմϴ. ʿ ִ ǥ ó ٽ ǥ ̿Ͽ óϴ Դϴ. ݱ ʿ ִ ǥ ʷ óǾϴ. ׷ ̹ ٸ ǥ  ô. 켱 ܸ ǥ 㸶 ǥ Ʒó   Եɱ? 1 negated + 2 1 "1 negated" ƵǾ '-1' "-1 + 2" Ǿ "1"̶ Ǿϴ. ǥ óǰ ǥ óǴ Ģ Ȱ Ǵ մϴ. ׷.... 1 + 2 negated -1 ? ǥ "negated" ġ ٲٸ 츮 ϴ ҽϴ. ʿ ִ ǥ ʷ óѴٸ 丷 "-3"̶ մϴ. ׷ "-1"Դϴ. ׷ Ͼ? Ӹ ϴµ.... Smalltalk 丷 Ʒó մϴ. 1 + 2 negated ~~~~~~~~~ 1 + -2 ~~~~~~ -1 ǥ(selector) ǥ 켱(priority) Ű ϴ. 쿡 㸶 ú ܸ ð 켱 ֽϴ. ׷ 1 + 2 negated 㸶 ǥ "+" ܸ ǥ "negated", ̷ ǥ ֱ ܸ ǥ "negated" óǴ Դϴ. ׷ 丷 ƵǴ κ ڽϱ? 1 + 2 + 3 factorial 㸶 ǥ 켱 "factorial" Ƶɱ, ƴϸ ʿ ִ "+" ǥ Ƶɱ? Smalltalk Ʒ մϴ. 1 + 2 + 3 factorial ~~~~~ 3 + 3 factorial ~~~~~~~~~~~ 3 + 6 ~~~~~~~~~ 9 ʿ ִ '+' óǾϴ. "factorial" '+' ǥ óǰ ڿ óǾϴ. ׷ٸ ܼ 켱 ٰ ؼ óǴ ͸ ƴ϶ ̾߱ε.... Smalltalk ǥ Ģ ó ˴ϴ. << 켱 Ģ >> ----------------------------------------------------------- * 丷 ʺ ǥ ϳ ٷ ǥ 켱 Ѵ. * ǥ 켱 ų ǥ 켱 , ǥ óѴ. * ǥ 켱 ǥ ٸ, ǥ ٷ ִ ǥ 켱 Ͽ óѴ. * ۾ 丷 ǮѴ. ----------------------------------------------------------- Ģ "켱 Ģ"̶ θµ, ̴ Smalltalk 丷 ؾ Ȳ̶ 𿡼 Ǵ Ģ̹Ƿ ؾ ʿ䰡 ֽϴ. "1 + 2 + 3 factorial" "factorial" ƴ϶ "+" óǾ ذ ǽʴϱ? ٷ 丷 ʿ ǥ Ͽ ߿ 켱 ó Դϴ. ó ǥ "+" "+"̰ 켱 Ƿ ʿ ִ "+" ó Դϴ. ׷ "1 + 2" . "3 + 3 factorial" Ǿ ̰, ̹ ռʹ ݴ "+" "factorial" ܸ ǥ "factorial" ƵǾ "3 + 6" ˴ϴ. ᱹ "9" Եǰ. ǥ  켱 Ʒ ΰڽϴ. 켱 ǥ ----------------------------------------------------------- 1 ܸ ǥ(unary selector) 2 㸶 ǥ(binary selector) 3 踶 ǥ(keyword selector) ----------------------------------------------------------- ǥ Ѵ, "ܸ ǥ" 켱 , "㸶 ǥ", "踶 ǥ" 켱 ˴ϴ. Smalltalk ϸ鼭 ݵ ˰ Ѿ ߿ µ, ռ ߴ (class) ü(instance) 踦 ˾ƾϰ, ϰ ִ "켱 Ģ" ſ ߿ ̱ Ѿ ϴ. 켱 Ģ ˰ ־߸ ü ø ְ, ٸ (source code) Ʋ ʰ ֱ Դϴ. ⸦ ô. Ʒ ܸ ǥ, 㸶 ǥ, ׸ 踶 ǥ ǥ մϴ. 25 between: 10 + 3 factorial and: 5 factorial + 3 "켱 Ģ" ϰ ִٸ 丷  ƵǴ ˾Ƹ ־ մϴ. Ӹ 丷 ô. ׸ Ʒ ִ 캸 սô. 25 between: 10 + 3 factorial and: 5 factorial + 3 ~~~~~~~~~~~ 25 between: 10 + 6 and: 5 factorial + 3 ~~~~~~ 25 between: 16 and: 5 factorial + 3 ~~~~~~~~~~~ 25 between: 16 and: 120 + 3 ~~~~~~~~~~~~~~~ 25 between: 16 and: 123 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ true մϱ? Ͱ ߽ϱ? , 󰡸 IJϰ ô. ù ° ô. 25 between: 10 + 3 factorial and: 5 factorial + 3 ù ° ǥ Դϱ? 踶 ǥ "between:and:" Դϴ. 踶 ǥ 踻 𿩼 ϳ ǥ µ, 丷 ϳ 踻 ǥ ϳó ص մϴ. ׷Ƿ ⼭ "between:" ۼ踻 ó ±. ׷ ° ǥ Դϱ? 㸶 ǥ "+" Դϴ. ó ǥ 踶 ǥ̰, ° 㸶 ǥԴϴ. ϱ? 㸶 ǥ 켱 ϴ. ׷Ƿ "between: and:" "+" 켱 "+" ǥ óǾ մϴ. "+" óϱ ؼ Ǵٽ ٷ ִ ǥ 켱 մϴ. "+" ִ ǥ Դϱ? ܸ ǥ "factorial" ϴ. ׷ "+" 켱 "factorial" óǾ մϴ. "factorial" ʿ ֽϱ? 踶 ǥ "between:and:" ° 踻 "and:" ֽϴ. 踻 踶 ǥ κ Ƿ, "factorial" 켱 ϴ. "factorial" ó óǾ մϴ. ׷ٸ "factorial" ø ޴̴ Դϱ? , "3"Դϴ. ׷ ü "3" "factorial"ð , ü "6" ϴ. "factorial" óǾ ϴ. 25 between: 10 + 6 and: 5 factorial + 3 丷 ٽ ʿ մϴ. ó ǥ "between:and:" 踻 "between:"̰, ° "+"Դ . 켱 "+" óǾ մϴ. "+" óϱ ؼ ٷ ִ ǥ ãϴ. 踻 "and:"α . ׷ٸ 㸶 ǥ "+" 켱 Ƿ "+" óմϴ. "+" ǥ ø ޴ ü Դϱ? "10" ˴ϴ. ڴ "factorial" ؼ ó "6"Դϴ. ׷ ü "10" "+ 6"̶ ð ˴ϴ. 25 between: 16 and: 5 factorial + 3 , 踻 "between:"踻 ɸ ڴ óǾ ϳ ü "16" Ǿ ֽϴ. ׷ "and:" 踻 ɷִ ڸ óؾ մϴ. ó ϴ ǥ "between:and:" ° 踻 "and:"Դϴ. ʿ ִ ǥ "factorial"̱. "factorial" 켱 ó˴ϴ. ٳ "factorial" ܸ ǥ̹Ƿ ǥ ͵ ó ˴ϴ. ⼭ "factorial" ǥ ø ޴ ü "5"Դϴ. ׷ Ʒ ɴϴ. 25 between: 16 and: 120 + 3 丷 ſ ϴ. ռ ó "between:" ɸ ü ϳ ̹Ƿ, "and:" 踻 ɷִ ڸ Ǯô. ʹ ϴ. ִ ǥ 踻 "and:" 㸶 ǥ "+"̹Ƿ 翬 "+" ó˴ϴ. ƿ﷯ "+" 丷 ǥ̹Ƿ "+" ǥ ã ʿ䰡 . "+" ø ޴̴ "120"̸ ڴ "3"Դϴ. ü "120" "+ 3" õǾ, ó Խϴ. 25 between: 16 and: 123 ִ ǥ "between:and:" ̹Ƿ ǥ óϸ 丷 ˴ϴ. ü "25" "between: 10 and: 123"̶ ð , ü "25" "16" "123" ֱ 翬 "true" ϴ. ̷ν 丷 ϳ Ǯϴ. Ȯ, ó Smalltalk 鿡Դ 丷 Ӹ Ǯ ʽϴ. ׷ Ӹ 丷 Ǯ "켱 Ģ" µ ſ ū ˴ϴ. ư ̷ 켱 Ģ  ü ø մϴ.  丷̵ __ ϳ__ ǥ óǾ ð ϴ. ׷Ƿ տ 츮 ó ʿ ǥ 켱 ϳ ϰ  ǥ ó Ѵٸ ʰ Ǯ Դϴ. 丷 Ǯ̸ ֵ Ʒ 丷 غ ҽϴ. 丷 Ǯ ʽ . ׷ Smalltalk 丷 ְ 켭, Ǯ Ȯ ô. Ϳ ٸٸ Ǽ ߴ ãƺ ٶϴ. 1 + 2 + 3 factorial 10 factorial factorial + 1 1 + 2 factorial negated 1 between: 0 + 0 and: 2 factorial 1 negated between: 0 + 1 and: 5 2 factorial + 3 factorial Ʒ 丷 óǴ ÿ ø ޴ ü ٷν ǥ ҽϴ. 丷 ϴµ DZ⸦ ٶϴ. Ͱ ٸٸ, "켱 Ģ" ̱ , ŷӴ ó ٽ о սô. 1 + 2 + 3 factorial ~~~~~ 10 factorial factorial + 1 ~~~~~~~~~~~~ 1 + 2 factorial negated ~~~~~~~~~ 1 between: 0 + 0 and: 2 factorial ~~~~~ 1 negated between: 0 + 1 and: 5 ~~~~~~~~~ 2 factorial + 3 factorial ~~~~~~~~~~~ , ˾ƺ "ȣ" Դϴ. 츮 "2.2" ȣ ̾߱⸦ ϸ鼭 丷 ֽϴ. 1 + (2 * 3) 1 + 6 7 ȣ ѷ ˴ϴ. ׷ٸ "켱 Ģ" ȣ ؼ  ް ɱ? մϴ. ȣ ִ 丷 쵵 Ȱ Ģ ˴ϴ. ׷ Ģ ϳ ÷˴ϴ. ----------------------------------------------------------- * 켱ǿ ؼ óǴ ǥ ڰ ȣ ѷ ȣ ȿ ִ Ǯ ϳ ü ڿ ش ǥ óȴ. ----------------------------------------------------------- ϴϱ ſ , ⸦ Ģ ƴ ݹ ˰Ե˴ϴ. "1 + (2 * 3)" 츦 ô. ϴ ȣ ۿ "+" ǥۿ ϴ. ׷Ƿ ǥ óؾٵ, "+" ǥ ڰ ȣ ֽϴ. ׷Ƿ "+" óϿ "1" ø ȣ Ǯ մϴ. ȣ ȿ ִ "*" ǥ ó Դϴ. ô. 1 + 2 * (3 - 4 + (5 * 6)) + 3 ȣ ֱ Ȱ 켱 Ģ մϴ. ׷ "+" "*" ǥ Ǵµ, ǥ 켱 Ƿ "+" ó ˴ϴ. 3 * (3 - 4 + (5 * 6)) + 3 ٽ 丷 , ȣ ۿ ִ ǥ鸸 , ó ǥ "*"̰ "+" ɴϴ. ǥ 켱 Ƿ "*" óǾ մϴ. ׷... "*" ǥ "3" ø µ, ڷ "(3 - 4 + (5 * 6))" ֽϴ. ׷ ڰ ȣ ѷ Ƿ "*" óǷ ȣ Ǯ մϴ. , ٸ ȣ ȿ ִ 3 - 4 + (5 * 6) սô. ȣ ȿ ִ ǥ ǥ 캸 "-", "+" ̷ ֽϴ. 켱 Ģ ؼ տ "-" óǸ -1 + (5 * 6) ˴ϴ. "+" óؾϴµ ȣ ɸϴ. ׷ ȣ Ǯ -1 + 30 29 ˴ϴ. ȣ Ǯ "29" Ŀ ״ ̸ 3 * 29 + 3 ˴ϴ. ¿ ǥ 켱 Ƿ "*" ó ̰ 87 + 3 90 ˴ϴ. ϸ, ȣ ִ 丷̶ ٸ 丷ó 켱 Ģ մϴ. ȣ ȿ ִ ǥ ϴ. ׷ ξ ֽϴ. ȣ ϳ (=) ϶ Դϴ. ׸ 켱 Ģ ؼ ȣ ǥ ڰ ش ȣ Ǯ ذ ֽϴ. Smalltalk " 켱 Ģ" Դ ̱ Smalltalk " 켱 Ģ" ƹ ͵ ƴ϶ Դϴ. ½ϱ? :) ̹ ǥ ִ ð  óǴ ؼ ߽ϴ. Smalltalk α׷ ſ ߿ ̱ Ͻ Ŷ ϸ鼭 Ǿϴ. ư " ü" 踦 ľϴ ó " Ģ" ľϴ ͵ ſ ߿ϴٴ νñ ϴ. -------------------------------------------------------------- ٸ ...? "켱 Ģ" ſ ư ô е , "켱 Ģ" ſ մϴ. "켱 Ģ" 質 C/C++, Java, Object Pascal ȭ ʾҽϱ? д в α׷ֿ ðų ٸ, "켱 Ģ" ٸ  Ѵٴ (?) Ƽ "켱 Ģ" δ ϴ. ִٸ C++  ϴ 40 ڸ 켱 ǥ ÷ ص帮 , ʹ ޸±. ÷ֽ ???? · "켱 Ģ" Smalltalk ϰ 鼭 ſ ο ǥ ֵ ִ Ŷ մϴ. ʴϱ? :) ----------------------------------------------------------- ... :[] Smalltalk #11 ڷ: [20] :ȫ (ȵ巡) 1998-12-11 17:59 ȸ:169 Smalltalk #11 1998. 12. 11. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ 2.2.2. ! ! ! 2.2.3. ü 2.2.4. ÿ Ͽ 2.2.5. 켱 a2.2.6. ! ! ! ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 2.2.6. ! ! ! ----------------------- Smalltalk ""(integer) "м" "Ҽ" ϴ ֽϴ. ̹ ̵ ο  ̸, ü  ø ˾Ƶ ִ ؼ մϴ. Ƹ ̹ Ǹ Smalltalk α׷ óϴ κ ׿ ؼ ߴٰ ֽϴ. 츮 "2.2.2" ϴ ü(instance) ؼ پ ø ҽϴ. ⺻ ü ִ ô  ־ϱ? Ʒ ݱ 츮 ø ߴ ǥ ҽϴ. ---------------------------------------------------------- ǥ ---------------------------------------------------------- x + y Ѵ x - y x y . x * y Ѵ. x / y x y . x // y x y ´. x \\ y x y Ѵ. x negated x ȣ ٲ۴. x factorial x (x!) Ѵ. ---------------------------------------------------------- "2.2.2" 츮 ̵ κ ǥ ؼ ٷҽϴ. ׸ "켱 Ģ" ̷ ø Ⱦϴ. ׷ 츮 ؼ ʾҽϴ. װ , , ٸ ޸ ִ, ϸ, õٷ̱ Դϴ. , ׷ ʹ õٷ ؼ ˾ƺ սô. 켱 丷 ô. 2 / 2 1 8 / 4 2 10 / 5 2 120 / 5 24 ٽ ϱ ؼ ü "/" ǥ Ͽ ø ˴ϴ. ׷ ߴ ͵̾ϴ. ׷ ݵ . 丷 ô. 丷  ʴ Դϴ. 1 / 2 1/2 ? "1 / 2" ߴ "1/2" Խϴ. ̰ ϱ ? ϴ "1" "/ 2" ø ޾Ƽ "1/2" ü ߽ϴ. ׷ ü "1 / 2" 丷 ؼ "1/2" ༮ ü  ұ? ô. (1 / 2) class Fraction ȣ ߴ ƽðڽϱ? ٷ ߵ ܸ ǥ "class" Ǵ Դϴ. ( 𸣰 ٽ ô ۿ....) "Fraction" ãƺ ٷ "м"() Ǿֽϴ. "1 / 2"ó  ʴ , ü м Դϴ. "1 / 2" ؼ "1/2" " " д м Դϴ. п м 1 - 2 ó , ٿ м Ÿ ڿ и ̿ ǥ(/) ־ ϴ. ׷Ƿ "1/2" Ʋ ڿ и ִ "м"Դϴ. ׷ٸ ⼭ ǹ ϴ. м "1/2" "1 / 2" ſ Դϴ. "1 / 2" ϸ "1/2" DZ ٸ ̳İ ϴ 𸣰ڽϴ. ׷ "1/2" м ƴϳĴ ſ ߿մϴ. "1/2" м ̴ "1/2"  ü Դϴ. ׷ "1/2" м ƴ϶ "1 / 2" ٸ Ϳ Ұϴٸ? , ̰ "1"̶ ü "/2" ø 丷 ʴ´ٴ ϴ. ư ϴ Ʒ 丷 켭 ô. 1/2 class " â " "1/2" ϳ ü ü "class" ø ǽϴ. ׷ ׷ ʾҽϴ. ϰԵ â 鼭 "SmallIntege #divideIntoInteger: ˾Ƶ մϴ" ް ˴ϴ. ü 丷 SmallInteger ̴ .... 츮 "divideIntoInteger:" ø µ ϱ? , ̸ ߴ 丷 ڼ 캾ô. и 츮 ó (workspace) Է 丷 ٸ Դϴ. ϱ? , ٷ ""Դϴ. 츮 丷 ؼ Ű ʾҽϴ. ׷ Smalltalk 丷 ڸ ߽ϴ. "1", "2" , "/" "class" Ķ ϴ. ׷ м ΰ, 丷 ô. ̹ ٴ Ƶ 丷 Smalltalk  Ǹ ٶϴ. 5 class "5" , "class" Ķ. 5 + 2 "5", "2" , "+" Ķ. 5 between: 1 and: 10 "5", "1", "10" , "between:", "and:" Ķ. Smalltalk 丷 µ  Ģ ־ Դϴ. Ģ ? Ƹ ġ ä е鵵 𸣰ڽϴ. ٷ 丷 ̷ е ٸ ǥϴ Դϴ. 丷 ü ǥ Ǿ ֽϴ. ٷ Smalltalk ü , ǥ Ķ ǥ Դϴ. ̷ 丷 ϴ е鿡 ٸ б ִ " "(syntax highlight) θµ, ٷ 츮 ϰ Dolphin Smalltalk ̸ ִ Դϴ. ׷Ƿ 丷  ṵ̈  ǥ Ȯ ֽϴ. ------------------------------------------------------------- õǰ ִ κ ȯ ̸ մϴ. ׷ ó ȯ ̸ ʾҽϴ. װ ϰ ִ Smalltalk ε, ֱٿ  Smalltalk ٶ Ұ ִ մϴ. Smalltalk ý Smalltalk Express, Smalltalk/V, Smalltalk MT, Dolphin Smalltalk Դϴ. ߿ Ȯϰ Ȯϰ ϴ ȯ Dolphin ̾ϴ. Smalltalk ؼ ȯ Ž, ׷ Dolphin ó бⰡ ſ ٴ ͵ ϳ ū ˴ϴ. ---------------------------------------------------------- ٽ м ǵƿɽô. ռ 츮 丷 ҽϴ. 1/2 class â Ÿ , и Smalltalk 丷 ϱ ؼ ؼ ϱ ߽ϴ. "class" ӷ ü ǥ̱ Ķ ǥõǾ . ׷ '1/2' "/" ڼ Ķ ǥõ ϴ. ϱ? ٷ '1/2' '/' "ǥ" ؼߴٴ ݴϴ. ᱹ 츮 "1 / 2" "1/2" Ȱ ֽϴ. ǥ յڿ ĭ ִ Դϴ. "/" Ӹ ƴ 㸶 ô ٿ ᵵ ƹ ϴ. 1+2 3 5-3 2 6//4 1 6\\4 2 Ǹ б ư DZ Smalltalk 㸶 ǥ յڿ ĭ ĭ Դϴ. ׷ Ƿ "1 / 2" "1/2" 翬 Ȱ ֽϴ. ׷ ᱹ "1 / 2" ϸ "1/2" ϴ м ˴ϴ. ׷Ƿ Smalltalk м ʸ Ǹ а µ 򰥸 Դϴ. << Smalltalk м Ÿ >> ---------------------------------------------------------- * ڿ и ǥ(/) '/' յڿ ĭ ٿ . * Ŀ м ϸ ȣ θ. ---------------------------------------------------------- Ģ Ʒ ϴ. 1 + (2/3) * (3/4) + 1 9/4 ̷ ϸ Smalltalk ȣ Ǯ м ϰ Դϴ. ׷ տ ̾߱ߵ ؼ м ְ ֽϴ. ׷ ̹ Ѵٴ м ٴ 丷 ô. 1/3 1/3 2/3 2/3 3/3 1 4/3 4/3 5/3 5/3 6/3 2 ƴ϶  м ϸ ִ ߰ ֽϴ. ٷ ""(, reducing) Ѵٴ Դ . ׷ 쿡 ־ м ü е ִ غô. 丷 ϳ Ϳ Էϰ ô. 2/4 1/2 3/6 1/2 4/8 1/2 6/9 2/3 12/18 2/3 120/150 4/5 1024/8192 1/8 1024/8194 512/4097 ϱ? ű ʽϱ? ƹ ϴ ʿϴٸ մϴ. ̷ м(Fraction) ü м ִ մϴ. м ü ü ˾Ƶ '+', '-', '*', '/', '//', '\\', 'factorial', 'negated' ״ ˾Ƶ ϴ. (2/3) + (4/5) 22/15 (6/8) * (9/10) 27/40 ׻ ƴմϴ. м  ֽϴ. 1 + (2/3) 5/3 (14/5) - 2 4/5 (6/7) * 3 18/7 DZ м ٲϴ. ׷ ʿ ؼ ϰ, ϸ Ͽ ϰ մϴ. ؼ Smalltalk ʵл ϵ м ƹ Ǯ ִ Ư¡ ֽϴ. м ø ݵ ȣ ѷִ ȵǰڽϴ. ׷ м ü ˾Ƶ ִ ô ? ̸׸ м "и ?" " غ" ø ? 翬 մϴ. м ü ڽ м ʹ ˰ֱ м ִ ֽϴ. ʽÿ. (2/3) denominator 3 "и ϱ" (2/3) numerator 2 " ϱ" (2/3) reciprocal 3/2 " ϱ" м ü Ư и ϴ "denominator", ڸ "numerator", () ϴ "reciprocal"̶ ø ˾Ƶ ֽϴ. Ἥ ó ̰ ó ̶ ư Դϴ. 츮 ϸ "и", "", " "ε ̰ڽϱ? :) ׷ " (/1) Ÿ ִ" Ģ ֽ ϴ. "6" м ϸ "6/1" ȴٴ . ׷ ٸ "6" ռ denominator, numerator, reciprocal ø  ϱ? ü ø ˾Ƶ⳪ ִ ɱ? ҿ! Դ . 丷 ô. 6 denominator 1 "и" 6 numerator 6 "" 6 reciprocal 1/6 "" ϱ? Ե ü м ˾Ƶ ִٰ ߴ õ鿡 ˸° մϴ. ̾! ȶ ʽϱ? ̿ Smalltalk ü ü踦 ʹ ϰ ϰ ֽϴ. 켱 ߰. :) ׷ տ м ü ø ݵ м ü ȣ ѷζ ߴµ, ѷ ʴ´ٸ  ɱ? 2/3 denominator 2 2/3 numerator 2/3 2/3 reciprocal 6 Խϴ. ׷ ü Ȳ ? װ ٷ 𿡼 "ǥ 켱" ſ 踦 ֽϴ. 丷  ƵǴ 캸 ٶϴ. ׷ Ÿ, Ʒ ɰմ . Ŀ â Ÿ ƿ ƹ͵ ٰ Smalltalk Ÿ . 2/3 class " â " ׷Ƿ ٽ մϴ. м ü  ø ݵ м ȣ ѷִ ô. #12 ... :[] Smalltalk #12 ڷ: [21] :ȫ (ȵ巡) 1998-12-16 16:46 ȸ:169 Smalltalk #12 1998. 12. 16. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.2.1. 丷 ϱ 2.2.2. ! ! ! 2.2.3. ü 2.2.4. ÿ Ͽ 2.2.5. 켱 b2.2.6. ! ! ! ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.2. ~~~~~~~~~~~~~~~~~~ 2.2.6. ! ! ! ----------------------- #11... ϴ мٴ Ҽ ٷ ʿ ˴ϴ. Ư и ڷ ŸⰡ ׷ϴ. ̷ Ҽ() ϰ, Ҽ ǥ ֽϴ. 丷 ʽÿ.. 0.1 0.1 -0.25 -0.25 1.23 1.23 丷 ҼԴϴ. "Ҽ"() 0ٴ ũ 1ٴ ǹմϴ. ׷ "1.23" ϸ " 1 Ҽ 0.23 " ҷ ǽϴ. ׷ Ҽ ִ Ҽ θ ϹԴϴ. ٷ Ȯ ٿ Smalltalk м ٷ ó Ҽ ٷ ֽϴ. ٿ ٷ Ҽ Ҽ Ʒڸ شϴ ֱ⸸ ϸ ˴ϴ. ׸ ʿ信 ȣ ֽϴ. "-0.25" Դϴ. Smalltalk ü̹Ƿ ռ 캻 м (class) ־ϴ. ׷ٸ Ҽ  Դϴ. ü ڽ  ǥ "class" ƽ ־ ε.... · Ʒ 丷 ʽÿ. 0.1 class Float -0.25 class Float 1.23 class Float ϱ? Ҽ ߽ϱ? ٷ "Float"̶ ߽ϴ. ׷ ü "Float"  ϱ? "Float" ã "ٴϴ" ִµ, ̴ ǻ ӿ Ҽ  ǥǴ 谡 ֽϴ. "class" ø Ҽ ü "Float" "floating-point number"(ε ) Դϴ. ⼭ ε(ݩ)̶ "ٴ " Դϴ. "εҼ " Ǯϸ " ٴϸ鼭 Ÿ " ε, ̰ ǻ ӿ ٲپ ͸ Ҽ ִٴ Դϴ. "0.1" "0.01"̳ "1.0" εҼ ϴ ǻͿԴ ſ Դϴ. ư ǻʹ Ҽ ϱ ؼ εҼ ϰ, ̰ "Ҽ"(Float) θڽϴ. , ׷ Ҽ ü, "Float" ü(instance) ü  ø ˾Ƶ ? Smalltalk ϸ鼭 帮 ! ٷ յ(Գ) Դϴ. Ʒ 丷  ֽغñ ٶϴ. 0.1 + 0.2 0.3 -1.2 - 0.3 -1.5 2.5 * 10.1 10.25 2.8 / 1.4 2.0 6.5 // 4.3 1 6.5 \\ 4.3 2.2 5.1 negated -5.1 5.1 factorial " â " 캸ҽϱ? "Float" ü ˾Ƶϱ? ׷ ʾ Դϴ. ռ 츮 캻 м "Fraction"ó "factorial" ٸ ǥ ˾Ƶ ϴ. ٽ ѹ "factorial" ϴ м Ҽ ̶ ϴ. ׷Ƿ м Ҽ "Factorial" ϴ (method) 𸣴 츮 ø ϴ ¼ 翬 Դϴ. ư Ҽ "factorial" ǥ(selector) ִٴ ϸ մϴ. ׷ ռ 丷 ϴ ߿ 츮 ̷ο ˾Ƴ ֽϴ. ٷ "2" "2.0" ٸ Դϴ. Ҽ ׷ Smalltalk  ˾Ƶ? "2.0" "2" Դϴ. ׷ Smalltalk  ϴ  սô. Smalltalk ü ǥ(=) մϴ. 2.0 = 2 true "2.0" "= 2" ø ޾Ƽ ڽŰ ü "2" մϴ. ü ٸ Ÿ 翬 ؼ " "(true) . ׷ "2" "2.0" ? ô. 2 factorial 4 2.0 factorial "â " "2" "2.0" ϶ "factorial"ø ־ϴ. ü "2" Ҵµ, "2.0" 쿡 "Float does not understand #factorial"̶ â̿ Ƚϴ. ᱹ Smalltalk "2.0" ƴ "Ҽ"(float ˾Ƶ ٴ ε.... 2 class SmallInteger 2.0 class Float и ü ٸ ֽϴ. ׷ ϴ "2.0" Smalltalk 忡 ƴϱ ǥ "factorial" ˾Ƶ Դϴ. ݱ 츮 ׻ ƴϸ мϴ. ׷ Ҽ ʿ 쵵 и ֽϴ. ʿ м Ҽ ٲپ־ ִٴ Դϴ. м ü "asFloat"̶ ܸ ǥ ˾ ϴ. ⼭ "as~" "..." , "asFloat"ϸ "Ҽ" ֽϴ. 캾ô. 2 asFloat 2.0 3 asFloat 3.0 (1/2) asFloat 0.5 (1/10) asFloat 0.1 (128/97) asFloat 1.31958763 м ü "asFloat" ø ڽ Ÿ Ҽ ˴ϴ. 쿡 м ǥϱ ȣ ѷ־ մϴ. ܼ м Ҽ ٲ ִ ƴմϴ. Ʒ Ҽ ٲپ Ÿ ֽϴ. ü ȣ ѷ־߸ "asFloat" ǥ ٸ ޵˴ϴ. ((3/2) * (2/7)) asFloat 0.428571429 ó Smalltalk ʿ信 м ü Ҽ ٲپ ֽϴ. ׷ Smalltalk м ϰ, Ҽ Ư ø ؾ߸ ֵ ? װ ٷ "Ҽ Ȯ" Դϴ. Ҽ 󸶳 Ȯ ڽϴ. Ʒ 丷 ʽÿ. (1 - 0.9) * 2 0.2 쿡 Խϴ. "1" "0.9" "0.1", ⿡ ٽ "2" ϱ "0.2" ٸ ϴ. ׷ Ҽ ݸ ڸ 꿡 ŵϴ. (1 - 0.999999999999999999999999) * 2 0.0 ? 0.0? ̰  ϱ? 1 0.999999999999999999999999 0.0000000000000000000000001 ̰, ⿡ 2 ϸ 翬 0.0000000000000000000000002 Ǵ 翬ѵ, ̰ ̻ϴٴ ϴ. Ҽ Դϴ. ǻʹ Ҽ ð ʿ մϴ. ǻ ó ִ Ҽ ڸ ڿ ϴ. ̳߰ ڸ ȿ óȴٸ , ǻͰ ó ִ ڸ ̻ Ǿ, 꿡 Ű ˴ϴ. ׷ ǻͰ ó ִ εҼ ڸ 󸶳 ɱ? 丷 ؼ ˾ƺô.  Ҽ (phi) ̿ϸ ֽϴ. 3.1415926535898 3.14159265 1.23456789123456789 1.23456789 ̷ Smalltalk 뷫 ȩ ڸ Ҽ ν ó ֽϴ. ߴ ٽ ô. (1 - 0.999999999999999999999999) * 2 0.0 꿡 Ҽ ڸ 15ڸε, Smalltalk 9ڸ ν մϴ. ׷Ƿ Ű Դϴ. ׷ м ƹ óϰ ֽ . м "" "и" ǥϴ ̹Ƿ ڸ ʴ´ٴ Դϴ. 丷 ...? ----------------------------------------------------------- 10 factorial / 100 factorial 1/2571820310955251121078572499345973889184192247144555265338209983884 96472644482792132224051962512451185663850090463028434334174412800000000 00000000000000 ----------------------------------------------------------- Ե˴ϴ. ƹ ū ϴ м ǥ Ǹ ƹ ս ִ Դϴ. ̷ Smalltalk Ȯ Ҽٴ Ȯ ִ м ϵ ϰ ֽϴ. -------------------------------------------------------------- ٸ ...? Smalltalk ƴ ٸ 鿡 Ҽ մϴ.  ʴ Ҽ մ . κ м ⺻ ڷ ʰ , м ʿϴٸ (class)  ؾ մϴ. ְ, ڵ (overloading) ִ C++  ؾ, 쿡 ϴ. ⺻ ̵ Ҽ ⺻ ϰ ֱ Դϴ. ̿ Smalltalk ſ ո ߴٰ ֽϴ. ʿ м Ҽ ٲ ֱ , Ȯ Ҽ 󿡼 ո̶ մϴ. ----------------------------------------------------------- Ȯϰ ȴٴ , Ҽ Ͽ ذؾ ʿ伺 ֱ ⼭ Ҽ ǥ ¤ Ѿ ϰڽϴ. Ҽ ǥ ٸ ֽϴ. ݱ 츮 ̰, ϳ " ǥ", Ǵ ""()̶ ϴ ε, ⼭ ˾ƺ ϰ ϴ. ڸ Ҽ ǥ 츮 ǥ ϴ. 1x10^-20 2x10^-3 3x10^3 4x10^20 (, '^' "'). ڸ Ÿ "0" þ ƴ϶ Ͽ ⿡ "10" ϴ ؼ ڸ Ÿ Դϴ. ̸ ϸ "0" þ ֱ ȥ ֽϴ. Smalltalk ǥ Ϸ մϴ. 1e-20 2e-3 3e3 4e20 "e" "10 ŵ" մϴ. ׷Ƿ Ʒ ǹԴϴ. 2e3 20e2 2000e1 2000 ǥ ִ ֽϴ. Դϴ. ⼭ ռ ̾߱ߵ "e" "10 x" Ͽ ϸ ſ ֽϴ. 0.0314159e2 =0.0314159 * 10^2 = 0.314159 * 100 = 3.14159 314.159e-2 = 314.159 * 10^-2 = 314.156 / 10^2 = 314.159 / 100 = 3.14159 δ ƴ ϰ ֽϴ. Ҽ "e" ڿ ִ ڸŭ ű Դϴ. "e" ̸ Ҽ , ̸ ű ִٴ Դϴ. 0.0314159e2 = "Ҽ ĭ ű." = 3.14159 314.159e-2 = "Ҽ ĭ ű." = 3.14159 ռ 츮 м 踦 ˾ƺҽϴ. м ϳ ȿ , ϱ 켱 м ٲ ־ϴ. ׷ м, ׸ Ҽ Բ Smalltalk  ϱ? 丷 ʽÿ. 1 + (1/2) + 0.3 1.8 Smalltalk ó մϴ. 1 + (1/2) + 0.3 1.0 + 0.5 + 0.3 1.8 ν 츮 Smalltalk , м, Ҽ ִ  ϴ ְ ˴ϴ. , м, Ҽ Ŀ Բ ȯ Ͼϴ. ------------------------------ м Ҽ ------------------------------ ׷ ᱹ Ŀ Ҽ ü Ҽ ȴٴ ξ Դϴ. Smalltalk ؼ ȯ Ģ DZ Դϴ. ׷ ϴٺ м Ҽ ٲپ־ ֽ . ̷ ǥϰ ϴ Ҽ Ҽ Ʒ ڸ 0̸ , Ҽ Ʒ ڰ ְ Ǹ ڿ ̷ Ҽ ߶ մ . ֳϸ Ҽ ̱ . Ҽ м , Ҽ Ʒ ڸ ߶󳻴 ݿø ϴ ֽϴ. Ҽ Ʒ ڸ ߶ ô "truncated"̸, ݿø ϶ ô "rounded"Դϴ. ô м(Fraction) Ҽ (Float) ü ˾Ƶ ֽϴ. 5.4 truncated 5 5.7 truncated 5 6.3 truncated 6 8.8 truncated 8 Ҽ Ҽ Ʒڸ ϴ. ̰ "truncated" Դϴ. ݸ "rounded"ô ٸ . ʽÿ. 5.4 rounded 5 5.7 rounded 6 6.3 rounded 6 8.8 rounded 9 "rounded"ô Ҽ ݿø մϴ. Ҽ 0.5 , 0.5 ũ 1 մϴ. ׷ "5.4" "6.3" "5" "6" Ǿ, "5.7" "8.8" 1 "6" "9" Ǿ Դϴ. м ־ ٸ ƾ մϴ. ϴ м ռ "truncated" "rounded"ø Ϸ м(ʣ ) ϸ, "truncated" "rounded" ־ м м() ٲپ մϴ. 丷 ʽÿ. (5/4) truncated 1 (7/4) truncated 1 м "5/4" м ġ "1 1/4" ǰ, "7/4" м ġ "1 3/4" ˴ϴ. м κ Ѱᰰ "1"̱ "truncated"ô м κ ߶ κи Դϴ. "rounded" 캾ô. (5/4) rounded 1 (7/4) rounded 2 "rounded" м κ ڰ и Ѱ Ǹ κп 1 м κ , м κ ڰ ݿ ġ ϸ м κи ϴ. "5/4" "1 1/4"ε, м κ ڰ "1", и "4" ƴϹǷ κ "1" , "7/4" м ġ "1 3/4" ǰ, "3" и "4" Ƿ "1" ϳ Ͽ "2" ϴ. ó м Ҽ ٲٰ 쿡 սǵ ۿ ٴ ϰ,  쿡 , ƴϸ ݿø ϰ ߿մϴ. ݱ 츮 м Ҽ ؼ ˾ƺҽϴ. ׷ м Ҽ ² 츮 ˾Ƴ (class hierarchy)  ִ ˾ƺô. 츮 ˾Ƴ ؼ "class" "superclass" ø ߵ, м Ҽ Ȱ ô. ִ 丷 ϳ ʷ ô. (1/2) class Fraction Fraction superclass Number Number superclass ArithmeticValue ArithmeticValue superclass Magnitude Magnitude superclass Object м(Fraction) ٷ (Number) ֽϴ. ׸ Number տ 츮 캸ҵ (ArithmeticValue) ũⰪ(Magnitude) , δ ü(Object) ֽϴ. ׷Ƿ ᱹ м Number ִٰ ˴ϴ. ̹ Ҽ(Float)Դϴ. 3.5 class Float Float superclass Number Number superclass ArithmeticValue ArithmeticValue superclass Magnitude Magnitude superclass Object Ҽ м Ȱ ֽϴ. Float(Ҽ) м(Fraction) Number() Ʒ Դϴ. ׷Ƿ (Integer), м(Fraction), Ҽ(Float) Number() Դϴ. ׷ ݱ 츮 ˾Ƴ ׸ ׷ô. <׸ 2-3> Number (stp2-3.gif) ˼ ֵ, , м, Ҽ (Number) Ƿ, 츮 Smalltalk ߴٰ ֽϴ. м, ׸ Ҽ ϴ ߿ ̸, ü(instance) Ư ֽϴ. ̵ Ͽ ̿ϴ ٷ ִ Դϴ. ᱹ ü Smalltalk ü Ư ̰, ü ˾Ƶ ִ ÿ  ͵ , ü ٸ  ٷ ִ ľؾ߸ ε Smalltalk α׷ ۼ ִ Դϴ. ... :[] Smalltalk #13 ڷ: [22] :ȫ (ȵ巡) 1998-12-21 01:07 ȸ:159 Smalltalk #13 1998. 12. 21. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ ݱ 츮 ü ׵ ˾ƺҽϴ. κ 츮 ˾ƺ ü (Number) ϴ ͵̾, (Integer), м(Fraction), ׸ Ҽ(Float), Number ٷ ־ϴ. ̷ ͵ ü ǥ ͵̾ ϴ. 츮 ü  ڽϴ. 츮 ø ְν ȭ ü  ? ׸ ׷ ü  ̷? 츮 ׷ ü 鿡 ؼ ˾ƺ Դϴ. ׷ ü  ̷ , ̰͵  Ǿ ü ִ ٰŸ Դϴ. ̷ ü 鿩ٺ Ͽ 츮 "ü Ž" ؾ մϴ. 2.3.1. Ž ϱ ----------------------- ü "inspect" ø ˾Ƶϴ. "inspect" ã ƺ "ϰ Ǵ, ˻ϴ, ϴ ˿ϴ, Žϴ" ֽϴ. "inspect" ø ü ڽ 鿩 ֵ ݴϴ. Ÿ â ٷ "ü Ž"(object inspector)Դϴ. 丷 ʽÿ. 27 inspect (1/3) inspect 32.1 inspect ׷ <׸ 2-4> ü Ž⸦ Դ . ̷ ؼ Ž ְ ˴ϴ. <׸ 2-4> ü ŽⰡ (stp2-4.gif) ׸ ֵ ü Ž ũ (pane) Ǿֽϴ. ο "self" ؼ "numerator", "denominator", "1", "2" ְ, ο  ֽϴ. ׷ ü ο ǥõ ǹϴ ? ο ִ "self" 캾ô. "self" Դϱ? ٷ "ڱ ڽ"̶ Դϴ. Ž⿡ "self" Žϰ ִ ü ü ǹմϴ. Ž ο "self" õǾ ֽϴ. ¿ ʽÿ.  Ÿϱ? "27", "1/3", "32.1", ٷ Žϰ ִ ü ״ ǥõǾϴ. ⼭ Ȯ ֽϴ. ٷ ο ׸ ο Ÿٴ Դϴ. ׷ "1/3" Žϰ ִ "Inspecting a Fraction" â 캾 . ο ֽϱ? "numerator" "denominator" ֽϴ. ̰ մϱ? ٷ "" "и" Ÿϴ. ׷ "numerator" ؼ ̵ǰ ô. ȭ鿡  Ÿϱ? ο ִ "1/3" "1"̶ ٲ Դϴ. ׷ "denominator" ? ο и Ÿ "denominator" ϸ ο "3" Ÿ Դϴ. ̾߱ ׸ ϸ ϴ. <׸ 2-5> ü Ž ΰ (stp2-5.gif) Ǯ ұ ư 鸱 𸣰, Ž⸦ ſ Ѵٴ ֽϴ. Ž ü ü ̷ ִ (part) Ÿ . ׸ ο õ ǥõ˴ϴ. ׷ ⼭ "27" ο "self" Ÿ , "27", ƴ, ũ Ͽ SmallInteger ü ϱ ϴ ǹ մϴ. ̷ ̶ ü ؼ ٰ ص Դϴ. ׷ϴ. SmallInteger ü ʽϴ. ̰ (H) (O) ڴ ׵ ̷ ִ ƴ϶, ׵ üν ϴ Ͱ ϴ. Smalltalk ü ̷ ü ׷ ü ִµ, ü п ؼ ִٰ ˾ƺ ϰڽϴ. ϴ ߿ ׷ ü θ 鿩ٺ ִ Ž Դϴ. ± 츮 ü "inspect" ø ν Ž⸦ ("1.5.3", "2.1") 츮 ü Ž⸦ ٸ ̹ ƺ ֽϴ. Ͻʴϱ? , ٷ 丷 Ž⸦ ̾ϴ.  丷 "Workspace > Inspect It" ޴ ϴ ۼ ϸ 丷 Ƶ ü Žغ ִٰ ߽ϴ. ׷Ƿ ü "inspect" ø Ͱ ش ü (block) "Workspace > Inspect It" Ȱ Ÿϴ. Ž ü θ ϰ ϴµ ϴ " Ž "(drill down inspecting)̶ ֽϴ. տ ü ڽ ϰ ִ Ͱ ׷ ִٰ ߴµ, Ž  ü б Ž ִ մ . Ҵ Ž ߿ "1/3" Žϰ ִ "Inspect a Fraction"̶ ޸ â 캾ô. ο "self", "numerator", "denominator" ֽϴ. ߿ "numerator" ̵ǰ , ޴ "Workspace > Inspect It" ϰų ô.  Ǿϱ? <׸ 2-6> Ž Ž (stp2-6.gif) "Inspecting a SmallInteger" ϳ ŽⰡ Ƚϴ. Ž  ü ְ ֽϱ? , "1"Դϴ. "1" ̰ڽϱ? ׷. ٷ "1/3" ü (numerator)Դϴ. ̷ Ž ο ǥõ ü ߿ ϳ ̵ǰ "Workspace > Inspect It" ޴ ϸ ̵ ü ؼ ٽ ŽⰡ ˴ϴ. ̿  ü ϰ ִ ٽ Ž  Ǹ ᱹ ڱ ڽ ü̸ 'Ȧü' ϴµ ̴ ڿ ϰڽϴ. ˴ϴ. Ž ̿ν ü Ӽӵ 캼 ִ . Ұ Ž ۽ų ִ ϳ ִµ ,װ ο ǥõ (double click) Դϴ. ϱ ˴ϴ. Ʒ Ž ۽Ű ΰڽϴ. < Ž ϱ> ---------------------------------------------------------- * Žϰ ϴ ̵ǰ "Workspace > Inspecting It" ޴ Ѵ. * Žϰ ϴ ̵ǰ ۼ踦 . * Žϰ ϴ ü . ---------------------------------------------------------- ̷ Ž ſ ü Žϴµ ſ մ . , ߿ ü Ž ϰ Դϴ. ȭ鿡 Ž ε, ̵ ϳ ݾֽʽÿ. Ž ٸ ؾ ϴ , å󿡼 ʰڽϱ? ^^: 丷 Žؼ ο ü ŽⰡ սô. 2/3 , ٽ Ž⸦ 캾ô. ݱ Ž ַ 캸Ҵµ, ʹ Ž 캼 Դϴ. 캸ʽÿ. ϱ? , Ž ִ (workspace) ʽÿ. Ȱ ֽϴ. ã ְڽϱ? <׸ 2-7> Ž (stp2-7.gif> , ̹ ġ æ е鵵 𸣰ڽϴ. ٷ ȭ Ž ٴ Դϴ. Dolphin Smalltalk ̷ Ϳ Ž ? ܼ ϱ? ׷ ʽϴ. ִ Ž Ͱ ִ ֱ ֱ ؼ Ϻη Դϴ. ? ׷ٸ Ž ͷ ִٴ ̶, ׷ ׷ Դϴ. ռ "2/3" Žؼ Ž ʽÿ. п "self" ̵Ǿ ְ, ο "self" "2/3" ǥõǾ Դϴ. ο ִ "2/3" "(2/3) class"ó ģ ڿ ģ 丷 ʽÿ.  Ǿϱ? <׸ 2-8> ͷ Ž (stp2-8.gif) ׸ ֵ Ϳ ߴ Ͱ Ȱ "Fraction"̶ ̸ ü Ÿϴ. ̻ ̷ Ž ͷ ص Դϴ. ׷ ο "self" ̵Ǿֽϴ. 츮 ο 𰡸 Էߴٸ ο ִ "self"  ־ 𸣴 Դϴ. , "self" Ʒ ִ "numerator" ̵ǰ ٽ "self" ̵ǰ ô.  Ǿϱ? "self" ƹ ȭ Դϴ. 츮 Ž Ӱ ͷ 丷 غ ֽϴ. ׷ 츮 Ž⿡ Ѵٰ ؼ Ž ϴ ϴ. Ž ϰ ᵵ ٴ ɴϴ. ̰ Smalltalk ü 鿩ٺ ϴµ ־ ſ پ մϴ. ŽⰡ ִ ˾ƺ ̹ մϴ. 츮 ݱ ŽⰡ ü Ȯϱ⸸ ߽ϴ. ׷ ʿ信 츮 ̷ ü ٲپ ֽϴ. ׷ ŽⰡ ǥϴ ü  ٲپ ִ ؼ ˾ƺô. ȭ鿡 ü "2/3" ŽⰡ Դϴ. ⼭ 븦 "denominator" ġϿ ο "2/3" и "3" ǥõǵ ô. ο ִ "3" "4" ֽϴ. ̷Ը ϸ "2/3" "2/4" ٲ ? ׷ ʽϴ. ٷ տ 캸ҵ, Ž ó Ӱ ⵵ ϰ ִٰ ߽ϴ. ݰ Ȳ 븦 "self" "numerator" ó ٸ ű Ǹ 츮 "4" ϴ. ׷ 츮 ̵ ٲٶ ø Ư Ž⿡ ʿ䰡 ֽϴ. "3" "4" ٲ Ŀ "Workspace > Accept" ۼ ô. ȭ鿡 ƹ ȭ Դϴ. ׷ "Workspace > Accept" ޴ ϰų ۼ踦 "denominator" ̹ "3" "4" ٲ ֽϴ. Ȯϱ ؼ "self" ٽ ̵ǰ ô. ο Ÿ ? ٷ "2/4" Ÿϴ. 츮 տ ؼ "2/3" ü "2/4" ٲ Դϴ. ̷ Ž⸦ ̿Ͽ Žϴٰ  ٲ ʿ䰡 ִٸ, ٲ ̵ǰ ǥõ ο ϴ ְ "Workspace > Accept" ޴ ϰų ۼ ǿ ۼ踦 ̵ ٲ ˴ϴ. ------------------------------------------------------------- Smalltalk м ٷ м() ¸ ˴ϴ. ̴ м ڳ и ٲ м ü ˾Ƽ ֱ Դϴ. ׷ Ž⿡ ڳ и ٲ м ü ٲٴ 뺸 մϴ. 츮 Ž ⿡  ٲٴ ٲ ü ڽ ٲ ٴ ϴ. "2/4" · ϰ Ǵ . ---------------------------------------------------------- ü ٲ Smalltalk 丷 ֽϴ. 츮 "3" "4" ٲٱ ؼ Ž ο "4" ־, ڸ Smalltalk ִ 丷 ִٴ ˴ϴ. ô. ִ Ž⿡ ٽ "denominator" ̵ǰ ϴ. ο 츮 ٲ "4" Ÿ Դ . ¿ ̹ ִ "4" 丷 ο ֽϴ. 3 factorial ¿ "Workspace > Accept" ޴ ϰų ۼ 踦 ô.  Ǿϱ? ۼ踦 ڸ "3 factorial"̶ 丷 "6" ٲϴ. ̷  ü ٲٱ ؼ ܼ ְ, Smalltalk ִ 丷 ֽϴ. 츮 ü Ž⿡ ˾ƺҽϴ. Ž  ü ڼϰ 캼 ־, ü ٲ ־ϴ. Ҿ Ž ұ ִٴ ˾ƺҽϴ. ⼭ ͵ ٷ ̾ ü ˾ƺ ū Դϴ. ------------------------------------------------------------- ٸ ...? õǴ ü ü θ Ž ִ Ž⸦ غϰ ֽϴ. ̴ Smalltalk ϴ. ڰ Ž⸦ ó "Turbo C++ 1.0"̾ Դϴ. (debugging) ð Ž⸦ ־ϴ. Turbo C++ Ž Smalltalk Žó Ž ߽ϴ. ó ڰ ϴٴ . "Turbo C 2.0" "Watch" "Evaluate/Modify" ־ ü(Ȯ "") 캸ų ٲ ־ϴ. ׷ ü ϴ C++  ϴ Ž⺸ٴ ϴ. 귯 ð(visual) ԰, ð̳ ð ü ¸ ˻ϰ ٲ ִ Ž ⸦ ߾ϴ. â̳ ü (designe time) Ͽ ȭ鿡 ٷ ݿǴ ϰ ֽϴ. ᱹ ̰ Smalltalk 10⵵ ξ ߵǾ־ϴ. Smalltalk Ž⿡ Smalltalk ִ 丷 ü ٲ ־ϴ. ׷Ƿ ٸ  ϴ Ž ⺸ Smalltalk Ž Ѵٰ ص ƴ Դϴ. ⿡ Smalltalk Ž ٸ Ž⺸ ʶ ̰ Դϴ. ---------------------------------------------------------- ... :[] Smalltalk #14 ڷ: [23] :ȫ (ȵ巡) 1998-12-31 17:16 ȸ:146 Smalltalk #14 1998. 12. 31. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.1. ü ------------------ ٷ 츮 ü Ž⿡ ؼ ˾ƺҰ, ؼ Ž⿡ ͼ Դϴ. ݺʹ ü ϰ ִ п ؼ ڼ ˾ƺڽϴ. ׷鼭 츮 () ٸ ִ ü鵵 ٷ Դϴ. ü Žغô. 丷 ۼ踦 ϰų, ü "inspect" ø ռ Ҵ <׸ 2-4> ŽⰡ Դϴ. 27 1/3 32.1 Ž (pane) DZ 캾ô. "27" "self" ϳ ְ, м "1/3" "self" ð "numerator", "denominator" ֽϴ. Ҽ "32.1" "self" Բ "1" "8" ǥõǰ ֽϴ. տ ̾߱ Ͱ Ž ο Žϰ ִ ü ڽ(self) Բ ü ǥõȴٰ ߽ϴ. "27" ƹ ʰ ֽϴ. ݸ "1/3" "32.1" ֽϴ. Smalltalk ü ũ ʴ "Ȧü" ϳ ̻ ̷ ִ "ְü"  ֽϴ. п ̻ ɰ ڰ ִ° ϸ ϳ ü ̷ ͵鵵 ֽϴ. Smalltalk ü üν ϴ ͵ ִ° ϸ ϳ ̻ ü ִ Դϴ. , Ȯ ϸ (SmallInteger) ü , м Ҽ ٴ ߰ ֽϴ. ׷ ̷ ü ̷ п ֽϴ. м "1/3" ô. м ڸ Ÿ "numerator" и Ÿ "denominator" ֽϴ. п ̸ پ ֽϴ. ̷ ü ߿ ̸ "̸ "(named part)̶ θϴ. ݸ "32.1" Ҽ ü "1" "8" մϴ. ̵ п ȣ پ ִµ, ̷ ü ̷ п ȣ "ȣ "(indexed part)̶ θϴ. ̸ κ 츮 ǹϴ ֽϴ. "1/3" ü "numerator" "1" Ųٴ 츮 ֽϴ. ݸ "32.1" ϰ ִ ȣ Ž⸦ ̿Ͽ Ž ô. ֽϴ. ̴ ȣ ü ü ǻͰ ó ϱ Ͽ Դϴ. Ҽ Ʈ(byte) ̷ üԴϴ. Ʈ ǻͿ ų ⺻ ϴ ε, ַ ȣ ̷ ü Ʈ ؼ ϴ. Ʈ ִ ǹϴ, ׸ ̷ Ʈ ˾Ƶ ʿ䰡 ϴٸ, ǻ α׷ Ѵٰų ǻ ˾ƾ ϴ 쿡 ʿ Դϴ. ƹư Smalltalk Կ ־ ̷ ʿ ⼭ ׳ ȣ ̷ ̱ ˾Ƶθ ǰڽϴ. 鼭 ڰ Ǵ ϳ ֽϴ. ٷ Smalltalk ̸ ݾ ϴ Դϴ. ƹ ̶ Ϸ Ʋ ܿ Դϴ. ϱ "200 factorial" ƹ ʰ س Smalltalk ó ſ ű ̰, ̷ ٷ ̸ Ұ Ǵ ͵ ¼ 翬 𸣰ڽϴ.  α׷  ϰ ⺻ ٷ ־߸ ϱ 츮 ٷԽϴ. ׷ ʹ ƴ ٸ ü ؼ ݾ ˾ƺ ϰڽϴ. ռ 츮  ü ø "׷"(true) "ƴ "(false) ̳ ֽϴ. ﳪʴϱ? ٷ Ʒ 丷 ̳ Ÿ ϴ. 10 isKindOf: Integer true 0 between: 1 and: 10 false 2 = 2.0 true Ÿ "true" Ÿ "false" Smalltalk üԴϴ. ̵ ü "inspect" ø ˾Ƶ , ̴ ̵ ü鵵 Ž⸦ 鿩ٺ ǹմϴ. 迡 "true" "false" "inspect" ø ̵ ü 鿩ٺ սô. true inspect false inspcet 丷 ϸ <׸ 2-9> ˴ϴ. <׸ 2-9> Ž 鿩 true false (Stp2-9.gif) <׸ 2-9> "Inspecting a True" "Inspecting a False" ŽⰡ ֽϴ. ⼭ 츮 "true" "True" ϰ, "false" "False" Ѵٴ ִµ, ̻ ϴ. ̰ Smalltalk "ο "(boolean)̶ ǥϱ ؼ ϴ ϳ Դϴ. ̹ ġ ä 𸣰, Smalltalk 빮ڿ ҹڸ ϴ. ׷ "false" "False" öڷ ̷ ̶ ϴ ҹڸ ϴ Smalltalk ̸ ٸ ǹ̸ ˾ ϴ. Smalltalk ̸ 빮ڷ ϰԲ Ǿֱ "false" Ȯϰ "False" ̸ ü Դϴ. ̷ Ȳϰ , "false" "true" 鿩 ϴ. ֳϸ "true" "false" Ȧü̱ Դϴ. :) ü鿡 ؼ "class" "superclass" ø Ͽ (class hierarchy) ô. true class True True superclass Boolean Boolean superclass Object false class False False superclass Boolean Boolean superclass Object "true" "false" "Boolean" ٷ ִٴ ֽϴ. ڿ 캸 (Boolean)  Ǵ ִ ̱ , ˾Ƶ ִ ø Ͽ α׷ 帧 Ӱ ְ ˴ϴ. ˾Ƶ ִ ÿ ؼ ִٰ , ⼭  ٷ ִ 캸 ϴ. ˾ƺ ü ""(nil)Դϴ. ϸ "" ֽϴ. Object superclass nil "nil" "ƹ ͵ , ִ, " ֽϴ. Smalltalk ü  ø شϴ ų Ǿٴ ǹ̷ ˴ϴ. Ѹ "Object" ̱ ᱹ "Object" ϴ. "Object" "superclass" ø 翬 ""(nil) Ǵ Դϴ. "nil" ü̱ "inspect" ø ˾Ƶϴ. nil inspect 丷 Ű <׸ 2-10> "Inspecting a Undefind Object" ŽⰡ Ÿ Դϴ. "nil" ü ƹ ʴ Ȧü ֽϴ. <׸ 2-10> Ž 鿩 nil (Stp2-10.gif) "nil" ֽϴ. Smalltalk ü Ͱ, ü , ٸ ٷ ִٴ , Ͱ ̱⿡, ؾ Դϴ. :) nil class UndefinedObject UndefinedObject superclass Object "nil" ִ "UndefindObject" " ü" غ ֽϴ. "nil"̶ ü ǥϰ ִ ֽϴ. ư "nil" ü̸, ü "UndefinedObject" ִٴ ־ϴ. ׷ Ȥ Object superclass nil , "nil" "superclass" ø ϴ ǹ 𸣰ڽϴ. "nil" ƴϱ "superclass" ø ˾Ƶ մϴ. "UndefinedObject does not understand #superclass" ޸ â Ÿ Դϴ. nil superclass ư "nil" ü̱ ƴϱ ˾Ƶ ִ "superclass" ô ˾Ƶ մϴ. -------------------------------------------------------------- ǹ̿ ü ݱ ¤ Ѿ ֽϴ. װ 巯 ü ū ٴ Դϴ. ָ ó 鸰ٸ Ʒ ô. 丷 ʽÿ. 10 factorial class SmallInteger 100 factorial class LargeInteger "10 factorial" и "SmallInteger" ṵ̈, "100 factorial" "LargeInteger" ü Դϴ. ū ̱ 10 factorial isKindOf: Integer true 100 factorial isKindOf: Integer true ʹ 翬 Դϴ. ׷ 10 factorial inspect 100 factorial inspect 丷 Ͽ ū ü Ž ü ٸٴ ֽϴ. <׸ 2-11> SmallInteger LargeInteger Ȧüε ؼ ū ȣ ְü Դϴ. 68 ȣ ū 쿡 ũ⿡ ٸ ȣ ֽϴ. ư ǹ̷ ū , ׷ٰ ؼ ü ٴ ƴ϶ Ƶθ ڽϴ. Smalltalk 巯 ٸ ü մϴ. ----------------------------------------------------------- ݱ 츮 ü ̷ п ؼ ˾ƺҽϴ. , , , (nil)ó ʴ Ȧü ִ° ϸ, мó (named) ̷ ü ְ, Ҽó ȣ (indexed) ̷ ü ִٴ ־ϴ. 츮 ٷ κ ü Ȧü ƴ, ְüԴϴ. ִٴ ׸ŭ ü ϰ ϴ ǹմϴ. ٷ ˾ƺ (character) (string)ʹ ٸ ü 迡 ؼ ְ Դϴ. ... :[] Smalltalk #15 ڷ: [24] :ȫ (ȵ巡) 1999-01-03 17:38 ȸ:153 Smalltalk #15 1999. 1. 3. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü a2.3.3. ڿ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.1. ڿ ------------------ ǻ(computer) ̸ ֵ " ϱ ؼ" ϴ. ó ǻͰ 谡  ۽ο ̰,  ϸ Ȯ ߻Ͽ ǥ ϱ ؼ ٷ ǻͰ Ǿϴ. Ƽ̵ ô ŭ ǻͷ ó ִ ڷ ϴ. ׷ ̷ ڷ ǻ ο () ٲ ó˴ . ׷ ̷ ̷ ڷ ' ڷ'(digital data) θϴ. '' ϴ ڸ ǹϴ "digit" ̶ ϸ, ǻͰ ڷḦ ٲپ ó 翬 ̶ ϰڽϴ. α׷  ó ſ ߿ϰ ϰ, ٷ ͵, ᱹ ǻ ڷ ⺻ óDZ Դϴ. ̴ Smalltalk Դϴ. Smalltalk ü ٷ , ǻʹ ̵ ٲپ óմϴ. ռ , Ҽ, м ٷ ͵, ⺻ ̷ (Number) ü ⺻ õ ˾Ƶ ֱ Դϴ. Smalltalk ü ٷ Ƿ, ʹ ƴ ٸ ü ٷ սô. ǻͿ ߿ ڷḦ ٷ ڿ ְڽϴ. ڰ ؼ ϰ ִ ڸ ٷ , Ż󿡼 ִ ͵ ٷ ǻͰ ڸ ٷ ֱ Դϴ. е Smalltalk ̷ ڿ  Ÿ, ̵ ü ̿ؼ  ִ ˾ƺ ϰڽϴ. Smalltalk ڴ Ÿϴ. Ʒ 丷 ʽÿ. $a $a $b $b $A $A $! $! $1 $1 $2 $2 ٿ , Smalltalk Ÿ "$" Բ ǥ ڸ ָ ˴ϴ. $A, $B, $a, $b ڰ̰, $1 ̳ $2 ̸, $! 'ǥ' Ÿϴ. ׷ Smalltalk , , ѱ ڸ  ˾Ƶ? 丷 ô. $ "Invalid expression start ߸ ߻" 丷 Ǹ "Invalid expression start" ߸ ˴ . ᱹ ѱ ڴ ڷν ٷ ǹմϴ. Smalltalk 츮 󿡼 ٸ ѱ۵ ϳ ڷ ó ְ, ϰԵ Smalltalk ǻ 깰 ȭ ѱۿ ó ̾ Դϴ. ٷ ̾߱ ̿Ͽ ѱ Ÿ ϴٸ, ̿ ؼ ڿ ˾ƺ ϰڽϴ. ׷ ڴ  ,  ٷ ִ 캾ô. ü ʵ սô. $a class Character $b class Character $A class Character $B class Character $! class Character $1 class Character $2 class Character Character superclass Magnitude Magnitude superclass Object ڳ , Ǵ ǥ ȣ "Character" ü(instance)Դϴ. ̵ ڿ "class" ø ν "Character" ˴ϴ. ̷ ؼ "Character" "superclass" ǥ ̿ؼ ö ֽϴ. ᱹ "Character"() "Magnitude"(ũ )̰, ÿ "Object"(ü)Դϴ. ü "inspect" ø ˾Ƶ ֱ , Ȱ "inspect" ø ˾Ƶ ֽϴ. $a, $A, $! ڸ Ž ô. $a inspect $A inspect $! inspect 丷 ϳ ϰų $a, $A, $! ü ۼ踦 ̿Ͽ Žϰ Ǹ <׸ 2-12> ŽⰡ ȭ Դϴ. <׸ 2-12> $a, $A, $! Ž (Stp2-12.gif) Ž⿡ ֵ "Character" ü "ascii Value" ϴ ִ ְüԴϴ. "asciiValue" п  ? $a ü "asciiValue" Ž ô. $a ǥϰ ִ Ž (pane) "asciiValue" ð ̽ Ű ׸ "asciiValue" Դϴ. <׸ 2-13> $a ü "asciiValue" Ž (Stp2-13.gif> ------------------------------------------------------------- Dolphin Smalltalk ɰ ׷ ⼭ ڸ Ȳϰ ϴ Ͼϴ. ٷ Ž ο ɻġ Ÿ Դϴ. ۱ Ÿµ, ̰ "asciiValue" ϱ? ---------------------------------------------------------- an invalid UndefinedObject [should not implement] Evaluate the following expression to debug: asciiValue printString ---------------------------------------------------------- Ǯ ŽⰡ "asciiValue" ǥϴ , ذϱ ؼ "asciiValue printString"̶ 丷 Դϴ. ڰ ó Ȳ ſ Ȳ߽ϴ. ô Smalltalk ó ñ⿴Ƿ, ü  ϴ. ¿ "asciiValue" Ž ۽Ű â ǥõǾ, Ȳߴ ̷ ϴ. ׷ ħϰ ϴ Smalltalk ϶ 丷 ҽϴ. asciiValue printString '97' 丷 ȭ <׸ 2-14>Դϴ. <׸ 2-14> Smalltalk 丷 asciiValue (Stp2-14.gif) μ ڴ $a ü "asciiValue" ־ϴ. $a ü "asciiValue" 97̾ Դϴ. "asciiValue" ־ մϴ. Ǿٸ ο 97 ǥõǾ ǽϴ. ׷ Dolphin Smalltalk ߸ , ڿ ϵ ϰ ֽϴ. ͳ ׷쿡 뺸߾ϴ. ׷ ٷ ̾ϴ. Dolphin Smalltalk ѱ۰ ڵ óϱ ؼ UniCode ϰ ִ ̶ϴ. ϴ UniCode Smalltalk Ҵµ, ڸ ٷ Ϻ ɿ ٴ Object Arts Դϴ. ᱹ "Character" ü "asciiValue" ǥ ϴ ͵ ̷ ̶ մϴ. · ϴ "Character" ü "asciiValue" Ž ϴ Smalltalk ִ 丷 ϴ ۿ Դϴ. Ϸ ذDZ⸦ ٶ . ڰ Smalltalk Express Ÿ ȮεǾϴ. ---------------------------------------------------------- $a "asciiValue" 97̾ϴ. ׷ $A ϱ? ռ $A ü "asciiValue" ˾ƺ, 65 ֽϴ. $! 33̶ ϴ. , "asciiValue" ǹ̸ ִ ϱ? տ ǻʹ ڷḦ ٲپ óѴٰ ߽̾߱ϴ. ̰ Ҽ м ᱹ ̷ ü̾ϴ. ̴ ڵ ܰ ƴϾ, ǻͰ ڸ óϱ ؼ ڵ ٷ ߰, ᱹ ڿ ȣ ٿ Ÿ Ǿϴ. ׷ ڿ ȣ ̴ ִ ƴ϶ Դ . ǻͰ ó ϴ, ǻ͸  ȴ ȸ ڿ ȣ ٿϴ. ̷ ǻ͸ ڿ ȣ ̴ ޶ , "" ϴ ǻͿ ٷ ڸ "" ǻʹ ٸ ڷ ˾Ƶ Դϴ. Ǹ ȣȯ ǰ, ̷ ֱ ؼ Ȱ ڿ ȣ ̰ Ǿϴ. ħ ǥ ȸ(ANSI: American National Standard Institute) ASCII(American Standard Code for Information Interchange, ȯ ̱ ǥ ڵ) ϰ ˴ϴ. ASCII ǻͿ ڿ ȣ ̴ Ȱ Ǿϴ. "Character" ü(instance) ִ "asciiValue" ٷ ASCII ֽϴ. $a ASCII 97, $A 65̸, $! 33 Ǵ Դϴ. ڿ ASCII οǾ Ƿ, Ž⸦ ؼ ڿ ASCII Ͽ ǥ  Դϴ. ׷ ڿ ȣǥ ̹Ƿ, ڰ 帮ڽϴ. Ʒ ǥ ڿ ASCII ϴ. ---------------------------------------------------------- ASCII ---------------------------------------------------------- $a ... $z 97 ... 122 $A ... $Z 65 ... 90 $0 ... $9 48 ... 57 $( 40 $) 41 $$ 36 $. 46 $, 44 $<ĭ> 32 $<ٹٲ> 13 ---------------------------------------------------------- ȣḦ ִ ߰ ֽϴ. 켱, 빮ڿ ٿ ȣ ҹ ȣ ũٴ Դϴ. 빮 $A 65, ҹ $a 97̶ ̸ ϴ. 빮ڿ ҹ ̿ Ȯϰ 32 ̰ ֽϴ. 97 65 32 ִ . ׷ 빮 $A 65 32 ϸ ҹ $a 97 ˴ϴ. 쵵 ô. ⺻ ں ȣ ֽϴ. ׸ ̷ ڵ ƹ 谡 ٴ ֽϴ. $0 ǻʹ ̸ "0"̶ ó ϴ ƴ϶ "48"̶ óմϴ. ׷Ƿ ڿ ǹϴ ̰ ִٴ ˾ƾ մϴ. ڿ ASCII οǾ ֽϴ. $$, $., $, ڿ ȣ پ , ʴ ĭ ٲ ϴ ٹٲ ȣ ֽϴ. ڰ ǻ ο ٷ ̷ ȣ ν ó ˴ϴ. ü ڽ Ÿ ASCII  ֽϴ. ̴ ü "asciiValue" ø ν մϴ. 丷 ô. $a asciiValue 97 $A asciiValue 65 $0 asciiValue 48 $( asciiValue 40 ռ ĭ ٹٲ ȣ ִٰ Ƿ, ô. $ asciiValue 32 $ ĭ ֽϴ. 츮 ĭ ǻʹ ̸ ϳ ڷ óմϴ. ̴ ٹٲ ڵ Դ . 丷 ô. 丷 ̹Ƿ ̸ Ѵٴ ƽð? --------------------------------------- $ asciiValue 13 --------------------------------------- ۼǿ "$" ٷ ۼ踦 ٲٰ ̾ "asciiValue" Է Է ٿ ̸ ϴ. ۼǿ Էϸ 丷 ֽ ϴ. ڰ ĭ 32, ٹٲ 13 Ÿϴ. ڿ "asciiValue" ø ν شϴ ASCII ٸ, ASCII شϴ ڷ ٲپ ִ ? ֽϴ. ȶ "asCharacter" ø ˾Ƶ, ø شϴ ڸ ϴ. 丷 캾ô. 97 asCharacter $a 65 asCharacter $A 48 asCharacter $0 42 asCharacter $* 43 asCharacter $+ ʿϸ ڷ ٷ , ڿ شϴ ٲ  ٷ ֽϴ. ̷ Ư ̿ϸ 丷 ֽϴ. ($a asciiValue + 1) asCharacter $b 丷 $A ٷ ڸ Դϴ. 켱 $A "asciiValue" ø ٲߴϴ. ̷ ٲ Ƿ, 1 մϴ. ׷ ̷ ؼ "asCharacter" ø , ᱹ $A $B ִ Դϴ. ǥ 켱 Ģ ϸ 丷 $B Դϴ. "Character" ü "asciiValue" Ҿ ø ˾Ƶ ֽϴ. ַ ش ڰ  ˻ ϰų, ҹ ȯ óϴ ϰ ֽ . ʹ ü ˾Ƶ ִ õ ˾ƺ ϰڽϴ. $A isUppercase true $A isLowercase false $a isUppercase false $a isLowercase true "isUppercase", "isLowercase" "빮ΰ", "ҹΰ" ϴ. ø ڰ 빮 Ȥ ҹ ˻ؼ (true)̳ (false) ݴϴ. ڰ ƴ ڰ ȣ "isUppercase" "isLowercase" ø  ϱ? $+ isUppercase false $+ isLowercase false ϴ. ڰ ƴ϶ ᱹ 빮ڵ ƴϰ ׷ٰ ҹڵ ƴ϶ Դϴ. ׷Ƿ ڰ ƴ "isUppercase" "isLowercase" ؼ 翬 ̰. ڿ "asUppercase" "asLowercase" ø ν 빮ڴ ҹڷ, ҹڴ 빮ڷ ٲ ֽϴ. ʽÿ. $a asUppercase $A $A asUppercase $A $+ asUppercase $+ $A asLowercase $a $A asLowercase $a $+ asLowercase $+ 빮ڿ "asLowercase" ø ҹڸ , ҹ ڿ "asUppercase" ø ν 빮ڸ ϴ. ׸ 빮ڿ "asUppercase"ø ų, ҹڿ "asLowercase" ø ų, ڰ ƴ ڿ ̵ ø ȭ ϴ. ó "asUppercase", "asLowercase" ô ؼ 빮 ڿ ҹ ȯ ϴ ߿ ǥԴϴ. ǥ ˾ƺ մϴ. Ʒ 丷 ʷ ð  ϴ ñ ٶϴ. $a isLetter true $A isLetter true $+ isLetter false $0 isLetter false "isLetter" ø ڰ ̸ , ׷ ϴ. $a isDigit false $A isDigit false $+ isDigit false $0 isDigit true "isDigit" ø ڰ ̸ , ׷ ϴ. $a isVowel true $A isVowel true $x isVowel false $X isVowel false "isVowel" ø ڰ (a, e, i, o, u, A, E, I, O, U)̸ , ׷ ϴ. Smalltalk "is~" ϴ ǥ ü  ¸ ϴ մϴ. شϴ ° , ׷ ϴ. "as~" ۵Ǵ ô ü ٸ ü ٲٴ մϴ. ¸ ü "asCharacter" ø ٴ , "Character" ü ٲ۴ٴ ̸, "asLowercase" 빮ڷ ٲ۴ٴ ̸ ֽϴ. ݱ 츮 ü ؼ ø ҽϴ. Smalltalk ڴ ſ ü̱ , ٷ ̷ ſ ߿ Դϴ. ڿ ؼ ˾ƺǷ, ٿ ؼ ˾ƺ ϰڽϴ. ------------------------------------------------------------- Smalltalk ̽ļ C C++ Ư¡ "̽ļ " մ . ̽ļ ٴ ýۿ ۼ α׷ ٸ ý űⰡ ٴ ε, Smalltalk ̷ ̽ļ ſ  մϴ. Smalltalk ýۿ ڸ Ÿų ϴ ٸϴ. Ϸʷ Dolphin Smalltalk 쿡 "Character" ASCII ϱ ؼ "asciiValue" ϰ , Smalltalk Express 쿡 "asciiInteger" մϴ. ׷ ASCII ˾ƺ ؼ Ȱ "asciiValue" ø մϴ. ü ΰ  ̷ִ α׷ӿ ϴ. ü ٷ ˰ Ǵ Դϴ. Smalltalk ̷ Ư ýۿ α׷ ٸ ý ù̱ մϴ. ýۿ ü ϸ, ü  Ȱ α׷ ֽϴ. "asciiValue" Dolphin Smalltalk 쳪 "ascii Integer" Smalltalk Express "asciiValue" ô Ƿ, Smalltalk ýۿ Ȱ $a asciiValue ø ̿ ֽϴ. ̿ Ư C C++ Smalltalk ̽ļ Ư¡̶ ϰڽϴ. ---------------------------------------------------------- ... :[亯/26] ũ ؼ ڷ: [27] :ȫ (ȵ巡) 1999-01-09 01:38 ȸ:179 ---------------------------------------------------------- ȳϼ, Դϴ. ũ Ǹ û лԴϴ. Բ Ī ̷ մϴ. 帳ϴ. ---------------------------------------------------------- ȳϽʴϱ? 켱 оּż մϴ. δ ̶ оֽð, ׷ν ΰ ô ִٸ ƴ ϴ. ² ¸ ϸ ޾ƺ ó̱. ư ˰ִµ 帮ڽϴ. ---------------------------------------------------------- ù°! 踶 ÿ ߰ and: to: üμ  ΰ? ö ü ϴ°? װ ƴϸ isKindOf: and: ϳ ΰ? ̷ ø Ҷ  ϴ ñϳ׿. ---------------------------------------------------------- 踶 (keyword message) ؼ ̽ϴ. ϴ 踶 ð ִ 丷 캾ô. 5 between: 1 and: 10 true ü "5" "between: 1 and: 10"̶ ð ޵ Դϴ. ϴ 丷 Ʒó ߶ ô. ޴ ______ __________________________________________ 5 between: 1 and: 10 ~~~~~~~~ ~~~~~ ~~~~ ~~~~~ | | +---------[踻]-----+ "between:" "and:" "1" "10"̶ ٸִ 踻(keyword)Դϴ. ׸ 踻 𿩼 ϳ ǥ(selector) ˴ϴ. "between:and:" 踻 ǥ Դϴ. 踶 ô ó ϳ ̻ 踻 ̷ ֽϴ. ̴ C++ ü ĽĮ Smalltalk Ư¡, 踻 𿩼 ϳ ǥ ̷ ϰڽϴ. ϸ, 踶 ô ̻ 踻 ̷, 踻 ٷ ڸ ٸݴϴ. "between:"̳ "and:" üν ð ƴϰ, 踶 ø ϴ Դϴ. 踶 ô 踻 ڰ 𿩼 ϳ ø ٹ̰, ð ü ޵Ǿ ϴ. ׷ Smalltalk 踶 ø Ÿ "between:and:"ó ش ǥ 踻 ѵ Ƽ ǥմϴ. ׸ "isKindOf:" "between:and:" ٸ ̹Ƿ, "isKind Of:" "and:" ƹ 赵 ϴ. Ƹ "between:and" "isKindOf:" Բ Ͻø鼭 ȥ Ͻ ƴѰ A˴ϴ. Բ ο ø  ϴ ؼ ̽ϴ. ü ø ش ÿ ϱ ؼ  ø ó (method) ãϴ. ش ø ó ִٸ ø óϿ , ʴ´ٸ ᱹ ش ü ø ó Դϴ. ø ˾Ƶ ٴ , ø ó ü 𸣱 Դϴ. 츮 ø Ƶ ֵ ü ־ մϴ. ̹ ִ ü ο ϱ ؼ ش ü ش ø ִ ָ ˴ϴ. ϴ ٷ " Ž"(class hierarchy browser)Դ . ο ؼ Smalltalk ؼ ˾ƺ ʿ, ϴ ο ֽ ϴ. ͸ ó Է ô. 5 isPrime "SmallInteger does not understand #isPrime" ߸ ߻ 츮 "5" ü ", Ҽ(, prime) ¾?"ϰ Ƚϴ. ׷ ü ", Ҽ ¾?" ø  ó ؾ 𸣰 ֽϴ. 츮 ü  ϸ ڽ Ҽ ƴ ִ , ־ մϴ. 1) ο Tools > Class Hierarchy Browser ޴ Ͽ Ž⸦ ϴ. 2) 츮 "Integer" (class) ο ø ߰ ̹Ƿ, Class > Find ޴ Ͽ ȭڿ "Integer" Էմ . ̷ ϸ "Integer" õǰ, Ʒ (class definition) Դϴ. --------------------------------------- Number subclass: #Integer instanceVariableNames: '' classVariableNames: 'PrintBuf ' poolDictionaries: '' --------------------------------------- 3) ¿ Method > New ޴ ؼ ο (method) غ մϴ. Ž Ʒ (pane) Ŀ ¦Ÿ 鼭 ֱ⸦ ٸ ֽϴ. 4) Ʒ 丷 ״ Էմϴ. ---------------------------------------------------------- isPrime "޴(receiver) Ҽ ˻Ͽ ." self < 2 ifTrue: [ ^false ]. 2 to: self - 1 do: [ :i | (self \\ i) = 0 ifTrue: [ ^false ]. ]. ^true ---------------------------------------------------------- 5) Է ϱ ؼ ų Workspace > Accept ޴ մϴ. ϸ Է 丷 Smalltalk Ǿ (syntax highlight) ˴ϴ. 6) Ž⸦ ݽϴ. "Integer" Ʒ(subclass) ü (instance) "isPrime" ø ˾Ƶ ֽϴ. Ϳ ϸ Ȯ ֽϴ. 5 isPrime true 7 isPrime true 3 isPrime true 2 isPrime true 4 isPrime false 6 isPrime false 9 isPrime false 100 factorial isPrime false 200 factorial isPrime false ᱹ Smalltalk α׷ ۼѴٴ ̷ ü ˾Ƶ ִ ִ ̶ ص ƴ Դϴ. ---------------------------------------------------------- ι°! ũ ٸ OOP Dynamic Binding ׷ϱ ÿ ٸ ϴ  ϳ? ũ ؼ ۿ ? ƴϸ ŰȽᵵ, θ ʾƵ, Ư Ű带 ʾƵ dz? (ƹ ׷ ұ ..) ---------------------------------------------------------- (binding)  ̸ Ư ǹ̸ οϴ մϴ. Ͻ α׷ (run-time) ϴ ̰, α׷ (compile-time) ϴ Դϴ. (source code) Ǵ ϰ ó  ǰ, BASIC 뿪(interpreter) ϰų Smalltalk (incremental compiling) ϴ ȭ  ַ ˴ϴ. C++, ü ĽĮ virtual ̶ ϴ Ư ø ߸ ǰ ⺻δ ̸ ˴ϴ. α׷ Ư ̸  ǹ̸ ο Ǵؾ ϱ տ ð ʰ Һϱ Դϴ. ׷ Smalltalk ̸ յ˴ϴ. ǹ̰ , ǹ̰ ο˴ϴ. Բ Ͻ ó Ư ġ ʴ  ü ø ˾Ƶ ִٸ ̸(ǥ) ؼ ʽ ϴ. ̸׸ ۿ ֵ, м(Fraction) ü (Integer) ü Ȱ "numerator" "denominator" ˾Ƶϴ. ׷ м ٸ óմϴ. (superclass)  ִٰ ص, Ʒ ̸ ϸ 󸶵 (override) ֽϴ. Smalltalk (variable) ü ų Ƿ, ᱹ  Ű ü ø ,  ð ֽϴ. ׷Ƿ ϴ Դϴ. ׷ ̷ ұ? տ ؼ ӵ ʰ ϱ , ü ǹ "뼺" "뼺" ̴ ϳ Դϴ. Smalltalk ýۿ ȭ մ . ⺻ Smalltalk ô յǴ Ģ ,  ý ٿ , Ư ̸ ǵǾٸ ϰ, 쿡 ϱ⵵ մϴ. ˰ ֱδ Java ⺻ Ѵٰ ϱ , ̰ ׷ ɿ ū ʴ´ٰ մϴ. ---------------------------------------------------------- °! ũ Type ٰ µ, ׷ ߿ â ߳? ϵ ̳ʸ ߿ ׷ Ȳ ߻ϸ  dz? ϱ ؼ Ÿüũ ߸ ϳ? ---------------------------------------------------------- Smalltalk Ͻ ڷ(type) ʽϴ. ׷ ̷ ڷ ִ (class) ֽϴ. ڷ̶ ü  ̱ , ü Smalltalk type ü ʴ Դϴ. C++ ü ĽĮ ϳ ڷ ϱ , ̷ ؼ ߻ϴ ⼺̳ ȥ Դϴ. Smalltalk Ͻ ִ ٸ ֽϴ. װ Smalltalk ϴ (variables) 쿡 Ư ڷ Ǿ ʴٴ Դϴ. γ ڷ ˻縦 մϴ. ̾߱ϸ ̽Ŀ ϴ Ư ִٴ ε, ٷ ̰ Smalltalk ݴϴ. Smalltalk | a b c | ó ϸ, ǥڴ ""ٴ "ǥ" ϴٰ մϴ١ a, b, c  ü ֽϴ. a := 'Hello!'. a := 3. a := Array new: 10. a := a asSortedCollection. a := [ 3 + 4. ]. ȴٴ Դϴ. ̷ ǥ  ü ֱ Ͻ ó ߸ ߻ ֽϴ. ׷ Smalltalk ̷ γ ڷ ˻縦 ϴ ϴ ֱ Դϴ. ռ Smalltalk ü (class) ִٰ ϴ.  ü ڰ ø , ش ø ˾ ߸(exception) ߻մϴ. ̸׸ Smalltalk '츮' + ''. ó ϸ (string) ü ƿ "+" ø ˾Ƶ Ƿ ߸ ϴ. 3 + '' "String does not understand #addToInteger:"ó ٷ ˾ ð , · ߸ ڷ ؼ ý ۿ ظ ʵ Ǿ ֽϴ. Smalltalk 丷 Ͽ Ȯϱ ٰ ص װ ߰ ְ, ٸ ϴٸ ϴ ڷ ˻ ʿ䰡 Դϴ Բ Ͻ  쿡 ڷ ſ ϰ ֽϴ. ׷ ڷ ָ ˴ϴ. self assert: [x isKindOf: Number]. ϸ ڷ Ȯ ֽϴ. ڷ ˻縦 ϴ ˻ , Smalltalk 쿡 α׷ ʿ信 ڷ ˻ ֽϴ. ǥ() "x" Number ü̱⸸ ϸ, x (Integer)̰, м(Fraction)̰, Ҽ(Float)̰ ˴ϴ. IJϰ ˻ϰ ʹٸ self assert: [x class = SmallInteger]. ϸ ˴ϴ. "x" ǥ ݵ ü߸ մϴ. ڷ ˻ؼ ߸̰, Ǵ ó ߸ ̵, ϴ ߸ װ ó ֽϴ. ̴ ٸ  ó(exception handling) ѵ,  κп ߸ ߻ Ư ó ϱ⸦ ϸ [ ɵ ..... ] on: Exception do: [ ߸ ó ɵ .... ] ֽϴ. "Exception" ߸̳ ܸ Ÿ Ѹ ̰, ߸̳ Ÿ մϴ. ü ߸ Ƴ ؼ ش ߸ Ÿ ( "ZeroDivided" ) ֽϴ. ̷ ߻ ߸ ó ش ߸ ⺻ ߸ ó ⿡ Ѱ, ߸ ó â ǥϿ ڿ α ذ ִ ȸ մϴ. ش ߸ ޽ ڽ ؼ ߸ ߻ 뺸 ִ ó Դϴ. ϳ ڽϴ. Ʒ 丷 ʽÿ. ---------------------------------------------------------- [ 3 isUppercase ] on: MessageNotUnderstood do: [ :e | MessageBox notify: 'װ͵ ϳ?'. ]. ----------------------------------------------------------  ü ø ˾Ƶ ߸ Ƴ  ó ϴ Դϴ. ̷ Smalltalk ߻ϴ ߸ 󸶵 ڿ ó , ̰ ٷ Smalltalk Ŀٶ Ư¡ Դϴ. C C++̰ long l = 10; int I = 20; printf("%d %d", l, I); (̺귯 ڰ ó ʴ ̻) ߸ Ƴ ϴ. ڷ ˻簡 ٷӱ ҹ C/C++ ׷ ˻縦 ѽö ϸ ý ٿ̶ ġ Ȳ ߱ ִ Դϴ. ̿ Smalltalk ⺻ ڷ ˻縦 , ڷ(Ȯ ϸ ü) ڱⰡ  (class, type) ִ ˰ , ڱⰡ ִ ̰ ʹ ˰ ֽϴ. ֽϴ. ׾ִ ڷḦ 뿡 ־ Ӱ ڷḦ ̰ ׾ ִ ڷ Դϴ. ü 信 ü մϴ. "1"̶ ϳ ü 迡 , ڱⰡ ̸  ϴ, ڱ  ִ ٵ ˰ ִ ִ ü Դϴ. ü ߸ ø ȴ ϴ ý ٿǰų ʽϴ. ׷ ڷ ˻簡 ٷ Smalltalk ſ ϴٴ ϴ. C++ 뿡 հ , ü óϴ ڷ ű ϴ Դϴ. Smalltalk template̳ virtual Լ Ȱ C++ ξ ϰ ó ֽϴ. ׷ٰ C++ ̷ Ư¡ ڴٰ ϴ ƴϸ, ӻ ٸ Ͼ Դϴ. ٸ ̷ Ư¡ Smalltalk ״ ʴ´ٰ ؼ Smalltalk 򰡵Ǿ ȵȴٴ Դϴ. ---------------------------------------------------------- , , , ü, , (?)... 츮̸ΰ и ʹ ƴѰ ͳ׿. â̽ ƴϸ 츮 ̷ ̸ ڰ ϴ ׷̶ ִ ñϱ. ---------------------------------------------------------- ִ ѱ  ؼ ̾߱ϰڽϴ. ִ ߿ ̹ "ü", "" ̹ ˷ θ ̴ ִ° ϸ "", "", ""ó 츮 ˰ ü ʾҴ ְ, "", "", "踶" ó ̻ ؼ ֽϴ. ѱ "" α׷ ֽϴ. ׷ ѱ  󸶳 ٵ ˰ ֽϴ. ƽԵ Smalltalk ѱ ̸ ʱ ̸ ѱ , ϴ 츮 θ ϰ ִ ܷ ̶ 츮 ļ ˾Ƶ θ ٰ ߱ , ϰ õ Դϴ. "", "Ҹ", "", "" DZ ׸ ʾҽϴ. "constructor", "destructor", "inheritance", "polymorphism"ó ǥ߽ϴ. ڰ ó C++ 츮 åٴ д ϴ. ó "", "Ҹ" ڸű ƴϾ Դϴ. ˸ ãƳ ԰, ̷ ͵鿡 ϴ Բ ؼ ȸ DZ . ó "ۼ"(key) ſ , ʰ ǰ ֽϴ. и ãƺ Դϴ. ׷ ʾҽϴ. "ۼ" " " ظԴϴ. ̹ ϴ Դϴ. "method" ؼ "" "" "" ģ Դϴ. " óϱ () " Ÿϴ. "nil" ""̶ ̹ "" ׷ ߱ Դϴ. "" ãƺʽÿ. "nil" Ȱ ֽϴ. ǻ͸ ϴ ʰ 츮 ãƼ ͵ ߿ϴٰ մϴ. 츮 츮 ãƼ 츮 ٲ 鸳ϴ. "" Ϻ ΰ "" 츮 ұ? :) , 뿡 մϴ. ̰ , ̰͵ ø ʰ ߿ ƺ ߽ϴ. ռŴٴ ſ ſ Դϴ. α׷ غð Ͻ ̶ ݱ ô Ͻ Դϴ. Smalltalk ٵ, ڷᰡ Ÿ մϴ. ϴ ϰڽϴ. ׷  п Smalltalk, ׸ ü ⿡ α׷ֿ 帮 ͽϴ. Ź帳ϴ. , ׸ Ȥ, ۿ Ʋ κ ð ֽʽÿ. ׷ ߸ ˰ ִ ĥ ִ ȸ ֽø Ե ū ǰڽϴ. ٽ а ֽ Բ 帮, "" ʾҴ 𸣰ڽϴ. ׷ ߿ ǰ ϼ. :[] Smalltalk #16 ڷ: [28] :ȫ (ȵ巡) 1999-01-10 14:32 ȸ:155 Smalltalk #15 1999. 1. 10. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü b2.3.3. ڿ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.1. ڿ ------------------ #15... Smalltalk ʰ ߿ ڷν (string) ֽϴ. ϳ ̻ ڷ ̷ , ڰ ִ Ͱ ٷ ſ ߿ ڷԴϴ. ⼭ ̷ ٿ ؼ ˾ƺ ϰڽϴ. 켱 Smalltalk Ÿ ˾ƺڽϴ. 'Hello' 'Hello' 'ghostly' 'ghostly' '츮 ' '츮 ' 'Hello, 'ghostly', '츮 ' (string)Դ . ֵ Smalltalk ǥ(' ') ȿ  ٷ óմϴ. ü̱ "inspect" ø ˾Ƶϴ. ٿ "inspect" ø ų, Ǵ 丷 ϰ ۼ踦 ̿Ͽ Ž ô. <׸ 2-15> 'Hello', 'ghostly', '츮 ' Ž (Stp2-15.gif) ȣ (indexed) ִ ְüԴϴ. ׷ ռ 캻 Ҽ(Float) ʹ ޸ (string) ٸϴ. ռ Ž ٵ ϱ? 'Hello' 5, 'ghostly' 7, '츮 ' 9 ֽϴ. ׷ ̷ е鿡 ? ̹ 鵵 𸣰ڽϴٸ, п ٷ ڵ ֽϴ. ռ ̶ ֽϴ. ׷ Ž⿡ ڵ  Ǿִ ˾ ô. 'Hello' 쿡... ------------------------------ ------------------------------ 1 $H 2 $e 3 $l 4 $l 5 $o ------------------------------ Ǿ ְ, 'ghostly' ------------------------------ ------------------------------ 1 $g 2 $h 3 $o 4 $s 5 $t 6 $l 7 $y ------------------------------ ó Ǿֽϴ. ڸ ̷ ȣ п ش ϴ ڵ ֽϴ. ׷ ⼭ ǹ 𸣰ڽϴ. װ ٷ ϴ ߿ ǥ(' ') Ĵ Դϴ. 츮 Ÿ 'Hello'ó Ÿ, ٿ 翬 ǥ  Ѵٰ ϴ ֽϴ. ׷ ⼭ ǥ ܼ ۰ Ÿ ȣ Դϴ. ׷Ƿ ƴ϶ νñ ٶϴ. ġ "A" ڸ Ÿ ؼ $A µ, ⼭ "$" ƴ Ͱ ġ ϸ ǰڽϴ. ׷ٸ '츮 ' ? Ž⸦ Ȯ , ϰԵ п ִ ڸ ǥ Ѵٴ ֽϴ. ̴ տ ѱ Smalltalk ڷ ̷ ִٰ Ͱ 谡 ֽϴ. Smalltalkó ǿ ߵ α׷ ϳ ڷδ ѱ Ÿ Ű Ⱑ Ǵ Դϴ. ׷ٰ ٿ ѱ Ƽ Ÿ ƴմϴ. α׷ ѱ ü ó 찡 Ҵµ, 츮 Dolphin Smalltalk ѱ ʰ ó ֽ . ׷Ƿ ѱ ٷ ׻ Smalltalk ڸ ؾ Ѵٴ ͸ ε սô. -------------------------------------------------------------- Smalltalk ѱ Smalltalk ѱ Ʈ(byte) ó ϱ ϳ ڷ ó ״ ֽϴ. ̰ ѱ ڷ Ͽ Ÿ ִ Ʈδ Ʊ Դϴ. ѱ۷ ̷ ڷ Žϴ ٰ ǽϴ. ٸ 丷 ̿ϸ ϰ ִ ڵ ASCIIڵ带 16 ֽϴ. Ʒ < 1> ̸ ۼ ֽϴ. < 1> ̷ Ʈ ڵ Ȯϱ ----------------------------------------------------------- | result | result := String new. '츮 ' do: [ :ch | result := result , (ch asciiValue printStringRadix: 16 showRadix: false). result := result , ' '. ]. result. [ ] 'BF EC B8 AE 20 B3 AA B6 F3 ' ----------------------------------------------------------- ư ѱ ó ̷ ؼ UniCode ϴ Smalltalk ϴ ۿ µ, ռ ߵ Dolphin UniCOde Ƿ а α׷  ޾ ״ ġ ϴ. ڸ, ѱ Ʈ ǥ ϱ ڰ ƴմϴ. ڸ ִ 256 Ѵ ڰ ִٴ ǻ ڵ ſ Դ . ̴ (Ѻ) ǥ ʾƼ "Millenium bug"͵ Դϴ. ٺ ؼ "Y2k" ̰ڽϱ? 츮 ϴ ǻ, ѱ ǥ , "Y2k" ŭ̳ ߴ , ϴ Դϴ. ----------------------------------------------------------- (string) Ž⿡ ٲ ִ üԴϴ. 'ghostly' Žϰ ִ Ž⸦ ̿Ͽ ٲپ սô. ռ 'ghostly' Žϰ ִ Ž⸦ ݾҴٸ Ϳ 'ghostly' Էϰ ̸ ۼ Žؼ Ž⸦ ʽÿ. 츮 6, 7 $l, $y $', $s ٲ Դϴ. ˴ϴ. 1) 븦 "6" Űܼ 6 ǥõǰ Ѵ. 2) ο $l ǥõǾ ȮѴ. 3) $l 'l' ǥ(') ٲ۴. 4) ϱ Ͽ ų Workspace > Accept ޴ Ѵ. 5) 븦 "7" ű. 6) ο ǥõ $y $s ٲ۴. 7) ϱ ؼ ۼ踦 ų Workspace > Accpet ޴ Ѵ. 츮 Ȯ ؼ "self" ̽ ô. ׷ ׸ Դϴ. <׸ 2-16> 'ghost''s' Žϴ ȭ (Stp2-16.gif)  Ǿϱ? ȭ鿡 'ghost''s' Ÿϴ. 츮 и ǥ ϳ ־µ ȭ鿡 ǥ ִ Խϴ. ⼭ 츮 ߿ ֽϴ. ٷ ȿ ǥ ֱ ؼ ǥ ʿϴٴ Դϴ. 'ghost's'ó Ÿٸ Smalltalk $t ٰ ϰ, $s ο ۵ȴٰ Ǵϰ ˴ϴ. ǻͰ ӿ ִ ǥ Ǵϰ ϱ ؼ, ִ յ ǥ ϳ ǥ óϵ Դϴ. ⼭ "յ"̶ ſ ߿մϴ. 'ghost' 's'ó ǥ ̿ ĭ  ̴ ϳ ƴ϶ ̱ Դϴ. ׷Ƿ Smalltalk ٰ Բ ǥ Ư ǰ ʿմϴ. ǥ ٸ, Ʒ 丷 Ž 캾ô. ٸ ǥ ؼ ͼ Դϴ. 'God''s car' 'It''s a boy!' '''hi''' ٿ յ ǥ ϳ ǥ(') Ѵٴ ռ ˾ƺ ֽϴ. ׷ٸ 丷 ϸ  ? '' '' ״ Ÿϴ. ׷ٸ Ž ô. ׷ ׸ Դϴ. <׸ 2-17> ('') Ž (Stp2-17.gif) Ž ʽÿ. "Inspecting a String"̶ Ǿֽϴ. Ƿ 츮 и (string) Žϰ ִ Դϴ. ׷ Ž ο "self" ׷ ֽϴ. ƹ ϴ. ̰ '' ƹ ڵ " "(empty string; null string)̱ Դϴ. ϸ, ӿ ǥ յ ϳ ǥ Ƶ, ܼ ǥ յ װ ƹ ڵ ʴ Ÿϴ. ڰ ƹ ͵ Ž ƹ е ʴ ʹ 翬ϰ? ׷ٸ ǥ ϳ ִ Ÿ  ϸ ɱ ? ̰ ܵӴϴ. ü ȭϰ ִ Smalltalk Ư¡ Ϳ 丷 Էؼ 캸ų Ž Ǯ Դϴ. :) Ư ľ, ˾ƺ  ٷ ִ Դϴ. :) ׷ Smalltalk ü̹Ƿ, ü ľϱ ؼ ü  ,  ٿ ִ ˾ƾ߸ մϴ. 츮 ϴ ü(instance) "class" ø ϴ , "superclass" ø ö ô. '츮 ' class String String superclass ArrayedCollection ArrayedCollection superclass SequenceableCollection SequenceableCollection superclass Collection Collection superclass Object ö󰡴 ϳ ̻ ֽϴ. ² 츮 غ ̻ ߸(?) . ͵ ? Ǿ־ Դϴ. 츮 Ǯ Ʒ ֽϴ. String ArrayedCollection 迭 SequenceableCollection Collection ""(collection)̶ ϳ ̻ ü ϰ, Ʒ ""(sequenceable) ü þ ִ ̸, "迭"(arrayed) ü ִ ǹմϴ. Ư ſ ٸ ֱ , ̷ 鿡 ؼ ߿ ˾ƺ ϰڽϴ. ⼭ , ׸ þ ִ ̶ θ ϸ Դϴ. ٵ ľ, ̷ ˾Ƶ ִ õ 캸 ϰڽϴ. ٷ ִ  ͵ ? ؼ ϳ ٷ ̰, ̵ ˾Ƴ ڱ. ̷ Ϸ ٿ  ø ұ? 丷 ʽÿ. 'yes', 'ter', 'day' 'yesterday' '츮', '' '츮' ⼭ ǥ(,) ̸ ִ ǥ(delimiter) ƴ϶ ϳ 㸶 ǥ(binary selector)Դϴ. ֵ "," ø ڷ ޵ ڽ ϳ ϴ. "," ǥ ϴ մϴ. "," ޾ ִ , 켱 ǥ ʿ ϱ Դϴ. δ "at:"̶ ǥ ؼ ˾ƺô. ʽÿ. 'yes' at: 1 $y 'yes' at: 2 $e 'yes' at: 3 $s ǥ "at:" (parameter) ִ 踶(keyword) ǥ , ڷ Ѱ ȣ п ڸ ̾Ƴ մϴ. "at:" ǥ ȣ ̾Ƴ ִٴ ſ ߿ մϴ. ٿ , ù ° ڴ 1, ° ڴ 2, ̷ ٿ ִ ڸ ̾Ƴ ִ "at:" ſ ϴ. ̹ ٿ ڰ ƴ Ư κ ̾Ƴ Դϴ. 'frankly' copyFrom: 2 to: 5 'rank' '츮 ѹα' copyFrom: 5 to: 8 '' "copyFrom:to:" ڸ 踶 Դϴ. ù ° ڷ ־ ȣ Ͽ ° ڷ ־ ȣ ̸ ø ޴ ٿ ο ϴ. ̹ ϴ 丷(substring) ϴ Դϴ. ٽ ѱ۷ ̷ ٿ Ȱ "copyFrom:to:" ø ֽϴ. ׷ ȣ ѱ ݵ ڷ ļ ؾ Ѵٴ ƾ Ѵٴ Դϴ. "5" "8"̶ ȣ ʽÿ. ̸ ϴ ø ˾ƺڽϴ. 'hello' size 5 '츮 ' size 9 ǥ "size" ø ̸ ϴ. "Hello" ټ ڷ ̷ Ƿ "5" 翬 ϰ? ׷ "츮 " ѱ ڰ ڷ ̷ ٰ Ƿ, ѱ ڿ ĭ ϳ ϸ Ȯ ȩ ̷ ִ Դϴ. "9" ϴ. ݱ ˾ƺ ",", "at:", "copyFrom:to:", "size" ٷ ⺻ ʿ ϴ ߿ ǥԴϴ. ׷ ô. Ʒ 丷 ϳ , Smalltalk  ̰ڽϱ? 1000, '' 'no' at: 3 'yes' copyFrom: 2 to: 4 Ѱᰰ â(walkback window) , ߸ õԴϴ. ׷ Smalltalk ø ó ̾ ? ϳ ʴ ô. 1000, '' "SmallInteger does not understand #," ˸ ҽ ϴ. ϴ "1000" ƿ "," ø ˾Ƶ Դϴ. 쿡 '1000'̶ ó 丷 ľ մϴ. '1000', '' '1000' ü "," ø ˾Ƶ ü ؾ Ѵٴ Դϴ. 'no' at: 3 "Index 3 is out of bounds" ˸ ޽ϴ. ̴ "3 Ѿ Դϴ" ε, Ƿ 翬 "3" ʴ Դϴ. 'no' "at:"̶ ô , ڷ ߸ Ѱ ־ ó Դϴ. 'yes' copyFrom: 2 to: 4 쵵 Դϴ. 'yes' ٿ ° ° ̾Ƴ ޶ ϴ ε, ̷ ̹Ƿ İ ãƺ "4" Դϴ. 'yes' ü 츮 "copyFrom:to" ø ˾Ƶ ° ڰ ߸ ȣ ֱ 丷 Դϴ. ̿ 丷 캸  Ѻô. 'me', '', 'et' 'meet' "(1)" 'yes' copyFrom: 2 to: 2 'e' "(2)" 'yes' copyFrom: 2 to: 1 '' "(3)" 丷 Ǿ . տ ߴ ó ̹ ϳ 鼭 ô. (1) ̿  ־, ϳ ٷ Դϴ. 翬 ƹ͵ Ѵ뵵 ʽϴ. 'me' 'et' Ͱ ٴ Դϴ. ̴ "3 + 0 + 4" "3 + 4" Ͱ ٰ ֽϴ. "0" ǹ̸ ϴ. (2) "yes" ü ؼ ° ̸ ޶ ϴ ε, "copyFrom:to:" Ȯ ° ڸ ٷν ǵ ־ϴ. (2) 丷 "at:" ٸ µ, װ ٷ "at:" ٿ ڸ ̾Ƴ , "copyFrom:to:" (2) ڸ ָ ڰ __ __ ٴ ٸ Դϴ. (3) ̻ϴٴ Դϴ. ڷ ־ "2" "1" ùٸ ȣ, ۰ ٲ ֽϴ. ó ȣ ũ , ᱹ ƹ ͵ ǵȽ . "copyFrom:to:" ڸ ó ٴ ׻ Ŀ Ѵٴ ֽϴ. 츮 Smalltalk  Ÿ, ̷  ִ ˾ƺҽϴ. ׷ Ѱᰰ ǥ ް ٴմϴ. ׷ ūǥ(" ") ϱ? ׷ ʽϴ. Smalltalk ǥ Ÿ ߿ ϵ, ūǥ (" ") ſ ߿ մϴ. ݱ ū ǥ ӿ ؼ ˾ƺ ϰڽϴ. 丷 ʽÿ. "hello" nil (1) 1000 "" 25 (2) 1 "and" + "and" 2 3 (3) Smalltalk ūǥ(" ") ȿ ִ __մϴ.__ ū ǥ ȿ   ִ Smalltalk ̰ ϰ ƹ ͵ մϴ. ׷ (1) 쿡 Smalltalk ƹ 丷 ٰ Ͽ (nil) ϴ. (2) Smalltalk 25 ˾Ƶ ٷ ڿ ִ "" ūǥ ѷο Ƿ . ׷ 25 ׷ Դϴ. (3) ߰ ִ "and" Smalltalk ־ ƹ ǹ̰ ̱ , "3" Ÿ Դϴ. ̷ Smalltalk ūǥ ȿ ִ ̷ Ư ̿ؼ ۿ Ǯ̱(comment) ޾Ƶ ֽ . Ǯ̶̱ ״ ۿ ִ  Ǯ ϴ , ̴ ߿ ֱ Դϴ. 丷 ʽÿ.. $a isLetter true $1 isLetter false ⼭ "letter"  "" б⵵ Դϴ. Ǹ $a $1 ˾Ҵ , ᱹ $1 ڰ ƴ϶ ִ Դϴ. ׷ ⿡ ó Ǯ̱ ޾Ƶθ ? "isLetter ø ޴ ü ." $a isLetter true $1 isLetter false Smalltalk ūǥ ȿ ִ θ ᱹ ִ Դϴ. 1 + 2 3 "1 2 ϴ 丷" ó ʹ 翬 ε Ǯ̱ ޾شٰ ؼ ƴմϴ. Ǯ̱ ʿ ޾ִ ߿մϴ. ̾ 츮 丷 ٷ , 츮 ū ̸ Ǯ̱ ߿ ϰ Դϴ. ƿ﷯ Dolphin Smalltalk Ǯ̱ ʷϻ ۾ Ÿ ٸ 丷 ֵ ϴ (syntax highlighting) ϰ ֽϴ. ̷ ſ ֵ ݴϴ. 츮 ڿ ٿ ؼ ˾ƺҽϴ. ڴ "asciiValue" ̸ ־, ÿ (string) ̷ ſ ҿϴ. ȣ ־, ø ؼ ִٴ ˾ƺҽϴ. ڿ ߿ , α׷ ϰ ǹ ְ Ÿֱ ؼ ٷ ڿ ؾ Ѵٴ Դϴ. α׷ ¥ 鼭 ڿ ߿ ˰ Դϴ. 츮 Smalltalk ٷ ؼ ˾ƺ Դϴ. ǻͰ ִ ߿ Ư¡ ߿ ϳ ٷ "Ǵ ִ" Դϴ. ٷ ̷ Ǵ Ǵ Դϴ. ٷν ݰ ٸ ü 踦 غ Դϴ. ... :[] Smalltalk #17 ڷ: [30] :ȫ (ȵ巡) 1999-01-24 12:07 ȸ:170 Smalltalk #17 1999. 1. 11. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü 2.3.3. ڿ a2.3.4. ãƼ... ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.4. ãƼ... ----------------------- " ΰ?" д ߿ ̷ Դϴ. ڵ 𸣰ڽϴ. .  ̴ ̶ ⵵ ϰ,  ̴ ̶ ⵵ մϴ. ""() " ǰ ϴ ", ŵ ϴ. ˷ 츮 "" "" ϴ. "Ǵ", "Ǵ" ó 츮 Ȱ ӿ Ѹ ֽϴ. 츮 Ϸ翡 "" "" ؼ ϰ ǽ߿ "" "" 鼭 ưϴ. ׸ŭ 츮 ൿ ߿ Ҷ ڴ մϴ. α׷ֿ ־ ̷ "" "" ſ ߿ ġ ϴ. ǻͰ ִ Ư¡ , "", "", "Ǵ" ִµ, ߿ "Ǵ" ſ ߿ϰ ϴ , "Ǵ" ؼ ǻ α׷ ǰ óϱ Դϴ. ǻ α׷ Ǵ ϴ ɷ ٸ, ̷Ա ǻͰ ߴ Դϴ. ǴϿ ׿ ´ . ̰ ǻͰ ϱ Դϴ. ǻͰ Ǵ̶ ᱹ ؿ , 츮  شٸ ǻʹ ǵ ִٰ ϴ. ̹ ̷ Ǵ Ű Ǵ "" "", ׸ ̸ ѷ ǿ ؼ ƺ ϰڽϴ. [1] Ư Smalltalk ü ְ, ü ˾Ƶ ִ ø ֽϴ. ߿  ô "" "" ͵ ֽϴ.  ־ϱ? ռ (Integer) Ҽ(Float) "=" ø ֽϴ. ﳪʴϱ? Ƹ 츮 丷 Դϴ. 2 = 2.0 true ü "2" "=" ø ´µ, ڷ "2.0" Բ ½ϴ. ü "2" ""(true)̶ ߽ϴ. ٽ ϸ, "2" ü "=" ڷ Ѿ ü ڽŰ ٸ ִ ɷ ִ Դϴ. ̴ üӸ ƴ϶ 츮 ٷ ü, Smalltalk ִ ü ִ ϴ. Ʒ Ⱑ ֽϴ. 2.0 = 2 true (2/4) = (1/2) true $a = $b false $b = 2.0 false 'hello' = 'hello' true 'Hello' = 'hello' false 3 class = 3.0 class false true = false false ü ⿡ ޶ ̴ ǹ̰ "=" "" մϴ. "2.0" "2" ٸ ұϰ "=" ÿ ؼ "" ϴ. м ü "2/4" "1/2" ü и ڰ ٸ ""̶ ϴ. ̴ м ϱ ȴٴ ϸ Դϴ. ̴ (Character) 쵵 ܴ ƴϾ, ⿡ $a $bó ٸ "=" ô ""̶ ϴ. (string) "=" ÿ Ȱ մϴ. ڽŰ "=" ø 翬 'hello' ü "" ϴ. (Number) 쿡 ٸ ǹ̰ "=" ð "" ϴ. ׷ ſ ϰ ϴ. 'hello' 'Hello' 츮 ⿡ Դϴ. ׷ ǻʹ ٿ ִ 빮ڿ ҹڸ ϰ մϴ. 'hello' ù ڰ 빮ڷ ϴ 'Hello' ٸٰ Դϴ. ٸ Ǵ ִ (class) Դϴ. ü̱ Ȱ "=" ø ˾Ƶ ֽϴ. 3 class = 3.0 class SmallInteger ǰ, Float ϴ. ٸ "" Դϴ. "trau" "false" ü̱ "=" ø ˾Ƶ ֽϴ. "true" "false" ٸ ̱ ٸ ֽϴ. "false" 翬ϰ . ó  ü "=" ϸ ڷ Ѿ ü ڽ "" Ǵ "" մϴ. ̿ ٸ Ǵ ǻͰ ִ ߿ ſ ߿ ġ մϴ. [2] ũⰪ ռ 츮 ū (Integer), м(Fraction), Ҽ(Float), (Character) ˾ƺҽϴ. 캸 ټ Ѱᰰ "Magnitude" ִٴ ֽϴ. "Magnitude" "ũ⸦ ִ "̶ Դϴ. ̿ ũ ִٴ Դϴ. ռ "=" ð ٸ ִ ũⰪ ִ ô ü ũ ٴ Դϴ. ̷ ũ ִ ø Ʋ " "(relational operator) θϴ. Smalltalk ִ ڴ ͵ ֽϴ. 2 > 5 false "2 5 ũ" 2 < 5 true "2 5 ۴" 2 >= 5 false "2 5 ũų " 2 <= 5 true "2 5 ۰ų " ڴ ֵ ũⰪ(Magnitude) ũ մϴ. ">", "<" Ͱ ȣ ϰ, "۰ų " "ũŰ " "<=", ">="ó մϴ. "=>", "=<" Ƿ ǰ ʿմϴ. ƿ﷯ ռ 캸Ҵ "=" "(equality) ") θ , ڿ "=" "~="̶ ð ϳ ֽϴ. 2 = 5 false "2 5 " 2 ~= 5 true "2 5 ʴ" "=" ʰ ǹϰ, "~=" ٸ ٴ Ÿϴ. "=" "~=" ݴǴ Ÿϴ. "=" "=~" ̹Ƿ  ü ְ, ũⰪ(magnitude) 쿡 ֽϴ. ... :[Ź] 湮, Ź. ڷ: [34] :ȫ (ȵ巡) 1999-01-27 16:49 ȸ:81 Ada ̾߱⸦ ֽϴ. Ada ؼ ־, Ҵ ȯ ϱⰡ (ƴ ) Ada ߾. C++ Delphi(Object Pascal) ˰ ư, O-Pascal źźԿ ǫ ֽϴ. ׷ Ada9x OOP ԵǾ ٱ? غ ͽϴ. ϴ ´ Delphi , Ada ġ ִٰ մϴ. Smalltalk ϸ鼭 ü⿡ ư κ ӽÿϰ ־, и Adaµ ū ƿ. 湮, ð ÷ּ. ûϰڽϴ. ! ǿ ʰ Smalltalk ¸ ϰڽϴ. ׷, д Ź~!! :[] Smalltalk #18 ڷ: [44] :ȫ (ȵ巡) 1999-02-04 17:05 ȸ:202 Smalltalk #18 1999. 2. 4. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü 2.3.3. ڿ b2.3.4. ãƼ... ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.4. ãƼ... ----------------------- [2] ũⰪ #17 ... ڴ ũⰪ ִٰ ߽ϴ. ׷ ô. 2.0 > 5.0 false "(1)" (2/4) < (3/4) true "(2)" (12/43) >= (7/9) false "(3)" 2 > 2.0 false "(4)" 3 <= 3.0 true "(5)" 10 > (8/9) true "(6)" (3/4) > 1.2 false "(7)" 켱 (!) (3) ô. Ҽ Ҽ, м м DZ 翬 ƹ ϴ. м ׷ ϱ ̷ϴ. (1), (2), (3) ˸ ִ Դϴ. , (4) (7) 츦 ε, տ 츮 , м, Ҽ   ȯ Ģ ־ ʴϱ? , м, Ҽ ϳ Ŀ (=) ٲ Ǿ ֽϴ. ----------------------------------------------------------- (Integer) м(Fraction) Ҽ(Float) ---------------------------------------------------------- (4) Ŀ "", "Ҽ" Ƿ "2" Ҽ, "2.0" ٲ ˴ϴ. (5) "3" "3.0" ٲ ˴ϴ. (6) "" "м" ̷ ̹Ƿ, "" 10 "м" ٲ ˴ϴ. (7) "м" "Ҽ" ̷ ̹Ƿ, "м" "Ҽ" ٲ ̷ϴ.  մϴ. (2 + 3) < (4 + 2) true ((2/5) + 3) >= (1.0 * 2) true ϴ ڷ ϴ 丷Դϴ. ǥ 켱 Ŀ ȣ ѷ մϴ. ȣ ʿ ֽϴ. 찡 ׷ Դϴ. 3 < 4 true 2 + 4 < 3 false 翬 ü̹Ƿ ȣ ʿ ϴ. ׷ ٷ Ʒ ұϰ ȣ ʿ ҽϴ. ׷? Smalltalk ϵ 帧 ô. 2 + 4 < 3 ~~~~~ 6 < 3 ~~~~~~~~~ false 㸶 (binary message) ʿ ϱ Ȯϰ Ǿϴ. ׷ Ʒ ߸ ϴ. 2 > 3 + 4 "False does not understand #+" 丷 Ƶ ϴ Ȯ ô. 2 > 3 + 4 ~~~~~ false + 4 ~~~~~~~~~ "false" ü "False"(ù ڰ 빮) ṵ̈, ü ᱹ "+" ø ˴ϴ. ˾ ϱ ᱹ 丷 ߸ ۿ . ̷ ȣ ѷָ ùٸ ִ Դϴ. տ 캻 (Number) 츮 Ģ (+, -, *, /) Ģ ˴ϴ. ׷ ũⰪ(magnitude) ڸ ִ ƴմϴ. ٷ ''(Character) ϳ ũⰪԴ . Ʒ 丷 ô. 3 isKindOf: Magnitude true 3.0 isKindOf: Magnitude true $a isKindOf: Magnitude true ֵ (3) Ҽ(3.0) ׸ м ũⰪԴ . ($a) ũⰪԴϴ. $a, $b ڿ ؼ ڸ ִٴ ˴ϴ. ׷ٸ Smalltalk ڵ  ϰ óұ? Ʒ 丷 ô. $a > $b false "(1)" $a < $b true "(2)" $a < $A false "(3)" $1 < $a true "(4)" $! > $1 false "(5)" ټ 츦 ô. (1) (2) $a $b ۴ٰ ɴϴ. (3) 빮 $A $a ۴ٰ ϴ. (4) $1 $a ۴ٰ ˷ݴϴ. (5) $! $1ٵ ۴ٰ ɴϴ. , ü Smalltalk  ڵ ũⰡ Ǵ ϱ? ڵ ũ⸦ ׵ ִ ȣ, (code)ν 񱳵˴ϴ. ռ ڰ ȣ  ̶ ϱ? , ASCII ڵ尡 װ. 츦 ڵ带 ؼ ô. ڵ ȣ ٲپ Ÿ 丷 ֽϴ. 97 > 98 false 97 < 98 true 98 < 65 false 49 < 97 true 33 > 49 false 丷  Ÿ Դϴ. ̷ ڳ 񱳴 ȣ մϴ. "ǻ" "" ַ ٷٰ ϸ ̻ ͵ ? ӰԵ ASCII ڵ 迭 ġմϴ. ڴ ũⰡ ۰, ڿ ڴ ũⰡ ũٴ Դ . $aٴ $b, $1ٴ $A ڿ ũⰡ ū Դϴ. [3] ٸ ڵ ݱ 츮 "=", "~=" (equality operator) "<, <=, >, >=" " "(relational operator) ؼ ˾ƺҽϴ. ̵ ٸ ü ڷ Ͽ ""̳ "" ͵̾ϴ. ׷  ü ڷ Ͽ ڴ ڳ ڸ ƴմϴ. е ߰ 츮 ̹ ̷ ڵ ð ˰ ֽϴ. ʽÿ. 3 isKindOf: Integer true $a isUppercase false $o isVowel true 5 between: 1 and: 10 true "is-" ǥ(selector) ǥ ø ü ¸ ľϴ " "(query message) 찡 ϴ. ̸׸ ü  ˾ƺ "isKindOf:", ڰ ΰ Ȥ ҹΰ ϴ õ "is-" ϰ, ش ü ¸ "" Ǵ "" Ÿϴ. õ "is-" ʴµ, ǥ "between:and:" Դϴ. ø ü ־ ̿ "" Դϴ. "between:and:" ڶ ֽϴ. Smalltalk ̹ۿ õ ֽϴ. ͵ , ڿ Բ ٷµ ſ ߿ ϰ ֽϴ. [4] ڴ ݱ ٷ ڵ鿡 Ͽ ""̳ "" ٷ ְ ݴϴ. ⼭ ڶ ̰, װ ʿ ؼ ˾ƺ սô. Ʒ Դϴ. 1 < 5 < 10 ̰ "5 1ٴ ũ, 10ٴ ۴" Դϴ. ׷ Smalltalk ״  ɱ? 1 < 5 < 10 "True does not understand #<" ߰ ߸ ߻߽ϴ. Smalltalk 㸶 ô ׻ , ̷ ü մϴ. 1 < 5 < 10 true < 10 ̶ Դϴ. treu 翬 "<" ø ˾Ƶ Ƿ ߸ ߻ Դϴ. ׷ٸ, Smalltalk  ǥؾ ұ? 츮 캻 ִٰ ϸ ˴ϴ. 1 < 5 5 < 10 ̾߸ "1 < 5 < 10" Ǵ Դϴ. ̾ ϳ մϴ. ٷ ̰ " "(logical operator) Դϴ. 丷 ʽÿ. (1 < 5) & (5 < 10) true "&" ȣ ٷ Դϴ. "&" ȣ "׸ " нϴ. ϸ "and" ǰ. ׸ "&" Ǵ ĵ Ǿ ϱ ȣ ѷϴ. Smalltalk ̸ õ ڿ Ǵ ""(and, ׸) ̾ Ǵ ""(or, Ǵ) ֽϴ. Ҿ ݴ "" ֽϴ. Ʒ "a", "b" "" Ȥ "" մϴ. a & b ̸ "", "". a | b ϳ ̸ "", "". a not a ̸ "", ̸ "". ڵ ̿Ͽ ؼ ϳ Ÿ ֽϴ. ׷ ڵ ϴ Ͽ ؼ ſ 𸣰ڽϴ. ׷ Ʒ ǥ Ͽ ҽϴ. ----------------------------------------------------------- &() |() ---------------------------------------------------------- ---------------------------------------------------------- ǥó ǥ "ǥ"(truth table) θϴ. ǥ " & " " " ֽϴ. ׷ Ʒ 丷 Ͽ հ  Ǵ 캸 սô. 켱 "true" "false" սô. true & true true true & false false true | false true false | true true false & false false տ ڰ ǥ ġѴٴ ֽϴ. ׷ α׷ ۼ ""̳ "" ϴ 年ϴ. ռ 츮 캻 ϴ ڳ մϴ. ׷ ϸ鼭 Ϲ ô. (2 > 3) & (4 > 3) false ($a isVowel) | (3 < 1) true ̱ , ǥ(selector) "켱 Ģ" 캸 ƴմϴ. ù ° 丷 Բ 󰡸 غô. (2 > 3) & (4 > 3) ~~~~~~ false & (4 > 3) ~~~~~~~ false & true false ǥ 켱 ϸ鼭 ϸ ʰ ֽϴ. , ׷ Ʒ 丷  ? (3 isKindOf: Object) & (100 factorial between: 1 and: 1000 factorial) ſ ̴ 丷 Ǯ Դϴ. ( Ģ ƴ ʰ 𸣰ڽϴ. ^^:) "" ؼ ˾ƺô. մϴ. Ʒ ʽÿ. true not false false not true (2 < 3) not false (2 > 3) & (4 > 3) not false ü "not" ø ø ü ݴǴ ϴ. "" "", "" "" ڹٲٴ մϴ. ַ "not" ô  Ͽ մϴ. ݱ 츮 "", "", "" ڸ ôµ, ̵ α׷ Ÿµ ˴ϴ. ̷ ؼ ǰ (̳ ) Ŀ α׷ 帧 ٲٴ ſ ߿ ϰ ˴ϴ. α׷ 帧 ؼ ʳ ̾߱⸦ ȸ ״, ڼ ̾߱⸦ ϵ սô. [5] ª ä ռ 츮 &() |() ؼ ֽϴ. ׷ ڴ Ư Ư ֽϴ. , ô. Smalltalk ݵ ϻ Ǯ մϴ. (2 > 3) & ((3 * 13243 / 32 + 1.23 - 4) < (3 + 30000 * 2132323 - 78 * 33 ) Ǫ η ϴ. 켱 ù ° η Ӹ ϴ ̰, ° ڸ ٷ ϴ Դϴ. , η  ηԴϱ? ܼ ⼭ ϻ ӵ ƴմϴ. ̰ Ǵ ٸ ִ Դϴ. ? ڴ "&", ""Դϴ. Դ ? "־ ΰ ''̸ ''" Դϴ. , ᱹ ־ ߿ "" ϳ 翬 "" ȴٴ Դϴ. ذ ʴϱ? "&" ø ޴ ü (2 >3), "false"Դϴ. "&" ǥ ڸ 䵵 "" Ǵ Դϴ. ׷ Smalltalk ϰԵ ʰ մϴ. ϴ "&" ø ü ϱ ̹Ƿ 翬 ́, 쿡 ؼ Ʊ ð ʿ䰡 Դϴ. Smalltalk ʿ ־ () ϰ(!) Ͽ óմϴ. ׷ Smalltalk ̷ (ڰ ؼ û?) ð ִ° ϸ, Ȳ Ǵ ؼ ʿ Ϸ ʴ ȶ ð ֽϴ. ٷ "and:" "or:" װԴϴ. Ʒ ʽÿ. true or: [true] true false or: [true] true false and: [true] false true and: [false] false ⼭ ó ȣ Խϴ. "[ ]" "ȣ" θµ, ̾߱ϰ ""(block) Ÿ ϴ ȣԴϴ. ư ռ 캻 "&", "|" ð 㸶 ÿٸ "and:" "or:" "踶 "Դϴ. űٰ Ѱܹ޴ ƴ϶ ""Դ . "&", "|" ð ڽſ ־ , ø ޴ ü(receiver) (parameter) ϴ Ϳ "and:" "or:" ø ޴ ü Ͽ (block) ־ ڸ ϱ⵵ ʰ Ѿ⵵ մϴ. , false and: [?] "?" ̰ "" true and: [?] "?" . true or: [?] "?" ̰ "" false or: [?] "?" . ̿ ־ ϴ "&", "|" "ä "(full circuit operation)̶ ϰ, ʿ信 ־ ( ) 꿡 ϴ "and:", "or:" "ª "(short circuit operatorion)̶ θϴ. ä ª ̸ ִ ٷ Դϴ. Ʒ ä ⸦ ڽϴ. (2 > 3) & (1000 factorial between: 100 factorial and: 10000 factorial) false 丷 Ϸ 뷫 2~4 ð ʿմϴ. װ "&" ڸ ϱ ؼ ū (factorial) ؾϱ Դϴ. ׷ ô. (2 > 3) and: [100 factorial between: 100 factorial and: 10000 factorial] false 꿡 ʿ ð ſ ªϴ. "Workspace > Display It" ޴ Ͱ ÿ Խϴ. ̷ ð ̸ ? , ٷ "ª " ȶ Դϴ. ռ ڰ Ǯ ª ϱ, ƴϸ ä ߽ϱ? ^^: ª ð Ƿ ȿ DZ , ݵ ؾ ð ִ ä ϴ. ڸ ä 丷 ª 丷 бⰡ ϴ. ݱ 츮 Smalltalk ٷµ ʿ ˾ƺҽϴ. , ڸ Ͽ Smalltalk ü ̿Ͽ ̳ ð մϴ. ̷  ϳ ڰ ־ ϴ. ̷ ڴ ׵ Ư , ־ ϴ "ä " ʿ 쿡 ϴ "ª " ִٴ ͵ ˾ƺҽϴ. ؼ 뼺 ٽϴ. ׷ ̷ ã α׷ Ǯ ؼ, ǻͿ ִ (!) Ҿ־ ֱ ؼ ݵ ʿ Դϴ. Smalltalk ü ȶϰ ڽ ؾ ִ , ̷ ü ãƼ ڽ ٸ Դϴ. 츮 α׷ ¥, ϰ, 츮 Ȱ ӿ ư ٺ, Ǹ ϳ üν, ü ̷ ߿ ҷν ڸ ű ϴ. ... :[] Smalltalk #19 ڷ: [76] :ȫ (ȵ巡) 1999-05-06 16:53 ȸ:148 Smalltalk #19 1999. 2. 9. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü 2.3.3. ڿ 2.3.4. ãƼ... a2.3.5. , , ׸ ٷΰ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.5. , , ׸ ٷΰ ------------------------------------ Smalltalk 󿡴 ü մϴ. ƴ, Smalltalk ü ü̸, ߰;ٰ Ǵ ϳ Smalltalk ̷ ִ ߿ üԴϴ. ü ׵ Ư з ִµ, ̹ ü ȭ з , ο Ư¡ ϴ ü ؼ ˾ƺ ϰڽϴ. [1] Smalltalk ִ ü ڽ ִ ٲ ִ ""(mutable object)  쿡 ü ٲ ""(immutable object) ϴ. (SmallInteger) "3" ô. 3 3 4 5 ϴ.  ̴ "3 + 1"̶ 丷 ϸ "4" ִٰ ϰ, ̴ "3" "4" ٲ ƴմ . ᱹ "3" ü "+ 1"̶ ø ϰ Ͽ "3" __ ٸ__ "4" ü , "3"̶ ü ü ̰ ٲ ƴ϶ Դϴ. ݸ տ 캻 (string) ʿϸ ϴ ڵ ٲ ֽϴ. 'Hello' inspect ü Ž⸦ , ⼭ ڸ ٲٰ ü ޶ ˴ϴ. ִ ü Ž⿡ ° $e $a ٲپ ô. ռ "ڿ " ؼ ˾ƺ Ž ⿡ и ϰ ִ ٲ ־ϴ. ϸ鼭 ٽ Ʒ 'hello' 'hallo' ٲٴ ϴ. 1) (pane) ִ 븦 "1" Űܼ 1 ǥ õǰ Ѵ. 2) ο $e ǥõǾ ȮѴ. 3) $e 'e' $a ٲ۴. 4) ϱ Ͽ ų Workspace > Accept ޴ Ѵ. ģ ٲ Ȯϱ ؼ ִ "self" 븦 Űܺ ο 'hallo' ǥõǴ ֽϴ. ó ü ٲ ֽϴ. ׷ Smalltalk ٰ Ӽ 鼭 ÿ (Integer) ü ֽϴ. ̷ ü "̸"(symbol)̶ մϴ. , ̸ , ϴ ٲ Դϴ. Ʒ ̸ ⸦ ڽϴ. #Smalltalk #Hello #class #isKindOf: #between:and: #+ ̸ ٽ 칰 (#) ؼ ĭ ϴ. 칰 ̸ ǥð ǰ ĭ ڵ ϴ. ׷Ƿ ̸ ĭ  ? ߿ ڼϰ ˾ƺ, ̸(symbol) Smalltalk  ϴ ̸ Դϴ. ̸׸ #class, #isKindOf: ü (message) ̸Դϴ. ̷ ̸ Ÿ ַ ̸ ϴ Դϴ. ̸ ؼ ڽϴ. #hello class Symbol Symbol superclass String 丷 غ ̷ο ֽϴ. ̸ ᱹ ̶ Դϴ. ռ 츮 ؼ ̾߱ ô. SmallInteger, LargeInteger Integer Ʒ , ̵ Numberϴ. ׷ٸ SmallInteger, LargeInteger ᱹ Number Ǵ Դϴ. 3 class SmallInteger 300 factorial class LargeInteger 3 isKindOf: Number true 300 factorial isKindOf: Number true ׷ٸ Ʒ 丷 ô. 'hello' class String #hello class Symbol #hello isKindOf: String true ᱹ ̸ ''̶ Ư (string) 迡 ֽϴ. ݱ ̸ ̶ ߴµ, ׷ ؼ ˾ƺ սô. ô. #hello inspect 丷 ϸ ü ŽⰡ Դϴ. ο ° Ű "2" սô. ׷ ο $e Ÿ Դϴ. ο ִ $e $a ٲ߽ô. ׷ Smalltalk ˸ ۼ踦 ô. ۼ踦 ׸ Smalltalk þ Դϴ. <׸ 2-18> Ž⿡ #hello ٲٷ (Stp2-18.gif) ü ˾Ƶ ø Ÿ ó ̹ â(walkback window) 鼭 Ž⿡ 츮 ۿ "should not implement" Ÿ Smalltalk Դ . ᱹ 츮 ̸ ٲٷ ϸ Smalltalk ش ٴ ǥ÷ â Դϴ. â ߰뿡 ٷ Ÿ ִ 캾ô. ---------------------------------------------------------- Symbol(Object)>>error: Symbol(Object)>>shouldNotImplement Symbol>>at:put: SequenceableCollectionInspector>>setField:to: SequenceableCollectionInspector(Inspector)>>accept SequenceableCollectionInspector(Presenter)>>performCommand: CommandQuery>>perform ...()... ---------------------------------------------------------- ٵ "1.5.9" ̾߱ߵ Smalltalk ߸   (method) ߴ ְ ֽϴ. 븦 ˸ ľ ֽϴ. ȭǥ() ޾Ƴ ô. Symbol>>at:put: Smalltalk  ִ ǥ " ̸>≯" ǥմϴ. 쿡 "Symbol"̶ "at:put:"̶ Ÿϴ. "at:put:" ռ Դ 踶 (keyword message)ϴ. ̸׸ 'hello' at: 2 put: $a ø 'hello' 'hallo' ٲϴ. ׷ ݱ ̾߱ߵ ̸ ̱ at:put: ø Դϴ. ᱹ ̸ ٲ ̶ ˴ . ̸ Ư ˾, ߸ ִ â ʽÿ. Smalltalk ۿ (method) ̸ ̸ · Ÿ ֽϴ. ݺ ڵ Ͽ, ̸ Ǹ ̸ · ڽϴ. ̸׸ ü 3 #class ø ٴ Դϴ. ó ̻ ̰, ͼ ̸ ſ ˾ƺ Դϴ. [2] ̸ ̸ ̾߱Ⱑ 迡 ⼭ Smalltalk ̸ ̴ ؼ ̾߱⸦ մϴ. ݱ 츮 ̸ ؿԽϴ. ߿ Object, Number, Integer, Stringó ̸ ־, #class, #superclass, #isKindOf:, #between:and: ó ̸ ־ϴ. ̷ Smalltalk ̸ óǸ, ̸ Ģ ֽϴ. սô. ƱⰡ ¾ ̸ ݴϴ. ׷ ̸ ƹ Գ ִ θ Դϴ. ֳϸ ̸ ϻ ū ֱ Դϴ. ſ ϰ, ׸  Ģ ̸ ݴϴ. ̸ "" "̸" ϴ. 쿡 ()̰ ̸ ȫ()Դϴ. 츮 ̸ ִ 쵵 , ׷ "" "̸" 踦 ʽϴ. Smalltalk ̸ µ Ģ ֽϴ. Ģ Ư "̸ Ģ"̶ θ, Smalltalk ̴ 鿡 ˴ϴ. ƿ﷯ ̸ Ģ ٷ ̸ µ Ģ̱⵵ մϴ. Ʒ Smalltalk ̸ Ģ մϴ. << ̸ Ģ >> =========================================================== 1. ̸ ⺻ ĺ , ׸ (_) Ѵ. 2. ù ڰ ڿ ȴ. 3. ĺ 빮ڿ ҹڰ ϰ ȴ. 4. 㸶(binary) ÿ ؼ ȣ ִ. ! @ % * ( [ { } < > = | \ / ? + - : =========================================================== ó Ģ ϰ Smalltalk غ α׷ ۼϴٺ Ģ ü ū ɸ Դϴ. Ģ ؼ ̾߱⸦ ֽϴ. 켱 ҹ ̾߱Դϴ. ռ ̾߱ ٿ Smalltalk öϰ 빮ڿ ҹڸ մϴ. ׷ Smalltalk smalltalk ̸ ִٸ ޵˴ϴ. SmallInteger Smallinteger ٸ ̸Դϴ. Ǽ 3 isKindOf: Smallinteger Smalltalk "Undeclared Smallinteger" ߸˸ Ѹ Դϴ. ó Smalltalk ̸ ҹڸ ϱ Ư ҹڰ ִ ̸ Է öڸ Ʋ ʵ ؾ մϴ. Ʒ ̸ ߸ ̸ ⸦ ̸ ⿡ ̾ ⸦ ұ մϴ. < Ȯ ̸ > a A IAmABoy YouAreAGirl Hello_Smalltalk The3rdRoad class isKindOf: between:and: do:to:by: + ++ - -- ** & ~= != < ߸ ̸ > 1Copy ڷ . Good Name ̸ ĭ . Good! , (_) ִ. +++ Ưȣ ִ. ---<>---------------------------------------------------------- ̾߱ Smalltalk ̸ ö ڿ ڸ ߽ϴ. ׷ ֱٿ ǥ Smalltalk κ , ڿ (_) ̸ ⿡ ְ Ǿϴ. ̴ C/C++  κе ҷ ų, ݴ Smalltalk ٸ  ֵ ݴϴ. ƹư Dolphin (_) ̸ ֱ ſ ˾ƺ ֽϴ. ---------------------------------------------------------- [3] 迭 տ 츮 (String) ̸(Symbol) ߽ϴ. ̵ ڷ ̷ ȣ (indexed part) ֽϴ. ׷ Smalltalk ڻӸ ƴ϶ ٸ ü ִ ְü ֽϴ. ̷ ü 츮 迭(array)̶ θϴ. ̳ ̸ ڷθ ̷ 迭  ü ִ Դϴ. 丷 캾ô. #(1 2 3) class Array #(1 2 3) 1, 2, 3̶ ü ִ 迭 Դϴ. 迭 #class ø "Array" մϴ. ׷ 迭  ü Ž⸦ ̿ؼ ˾ƺ սô. 丷 ʽÿ. #(1 2 3) inspect <׸ 2-19> 迭 #(1 2 3) Žϴ (Stp2-19.gif) Ž ο Žϰ ִ ü ڽ Ÿ "self" ü ȣ "1", "2", "3" Ÿ ֽϴ. 콺 ο ش п ִ Ȯ ϴ. ̷ 迭 Ÿ #( ) ӿ ʿ ˴ϴ. ̴ ĭ ݴϴ. 迭 ϰ ִ ü ϴ. ü Ž ⸦ ̿ؼ Ʒ 迭 Ž ô. ۼǿ ٷ ü ŽⰡ ٴ ؾ ? 1. #($a $b $c) 2. #(3.14 1.414) 3. #('츮 ' ' α') 4. #(true false nil) 5. #(#red #blue #green) 6. #(apple banana true) 7. #(100 $a 'hello' true false nil #red #green #blue black ) ǻ 迭 ؼ ȣ ٿϴ. ȣ ߱⸦ ұ մϴ. (1) $a $b $c, ̷ ڷ ̷ 迭Դϴ. 迭 ڶ ؼ 迭 (String) ϴ. ֳϸ ٰ 迭 Ѹ и ٸ Դϴ. · (1) ڵ ̷ 迭Դϴ. (2) Ǽ(Float) ̷ 迭Դϴ. (3) ̷ 迭Դϴ. 迭 ؼ ĭ , Ÿ ǥ(' ') ӿ ִ ĭ 迭 ̷ ˴ϴ. , '츮 ' ' α'̶ ˴ϴ. (4) ""(true) ""(false), ׸ ƹ ǹ̵ ""(nil) ̷ 迭Դϴ. 迭 ֽϴ. (5) ˾ƺ ̸(Symbol) ̷ 迭Դϴ. ̸ ֽϴ. (6) Ư Դϴ. ⿡ apple, banana, ׸ true ֽϴ. ⼭ true "true" ŵϴ. apple̳ banana Smalltalk ̸  ǹ̸ ο ƴ ⼭ ̸(symbol) ó˴ϴ. Ž⸦ ų 丷 #(#apple #banana true) ɴϴ. apple banana ̸ óǾٴ ݴϴ. #(apple banana true) #(#apple #banana true) (7) 迭Դϴ. 100, $a, 'hello', true false, ƹ ǹ̵ (nil), ׸ ̸ #red #green #blue #black, ̷ ֽ . 迭 ٰ ص ĭ ֱ⸸ ϸ 󸶵 迭 Ÿ ֽϴ. ------------------------------------------------------------- 迭 п ؼ #( ) Ͽ 迭   ִ° մϴ. ֳϸ Smalltalk ý۸ ݾ ٸ 迭 óϱ Դϴ. Dolphin Smalltalk 쿡 տ ̾߱ true, false, nil óմϴ. 迭 true, false, nil Ȯϰ , , ׸ (nil) óѴٴ Դϴ. ׷ Smalltalk Express Smalltalk-MT #( )ȿ ִ ̸ ó ϴ. #(true false nil) #(#true #false #nil) Ȱ ǹ̷ ̰ ˴ϴ. ̸ ˾ƺ ؼ Ʒ 丷 Dolphin Smalltalk, Smalltalk Express, ׸ Smalltalk-MT 캸ҽϴ. < 1> 迭 ˾ƺ ---------------------------------------------------------- #(true false nil) do: [ :element | Transcript cr. element printOn: Transcript. Transcript nextPut: $ . element class printOn: Transcript. ]. [ ] (Dolphin Smalltalk) true True false False nil UndefinedObject (Smalltalk-MT) #true Symbol #false Symbol #nil Symbol (Smalltalk Express) true Symbol false Symbol nil Symbol ---------------------------------------------------------- [ ] 캼 ֵ Dolphin ٸ Smalltalk ýۿ #( )ȿ ִ ̸ մ . ο ٸ, Dolphin Smalltalk ó Ÿ մϴ. 迭 ̿Ͽ α׷ ۼѴٸ ̷ Smalltalk ̸ ϰ ־ Դϴ. ---------------------------------------------------------- ... :[] Smalltalk #20 ڷ: [81] :ȫ (ȵ巡) 1999-05-13 10:25 ȸ:139 Smalltalk #19 1999. 5. 13. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.3.1. Ž ϱ 2.3.2. ü 2.3.3. ڿ 2.3.4. ãƼ... b2.3.5. , , ׸ ٷΰ ...... ======================================= 2. ü ̾߱ ------------------------------------ 2.3. ü ~~~~~~~~~~~~~~~~ 2.3.5. , , ׸ ٷΰ ------------------------------------ #19 ... [4] ̹ 𿡼 츮 ̸(Symbol) 迭(Array)̶ ü ˾ƺҽϴ. ̸ ٲ (immutable object)ε 迭 ٲ ִ (mutable object)̰,  ü̵ ִ ֽϴ. ׷ ü鿡 ؼ սô. ռ (Number) ؼ ̾߱ , 츮 #class #superclass ø ؼ ö ֽϴ. ⼭ ̸ 迭 ö ô. Ʒ 丷 ô. #hello class Symbol Symbol superclass String String superclass ArrayedCollection ArrayedCollection superclass SequenceableCollection SequenceableCollection superclass Collection Collection superclass Object ̸(symbol) ٴ ֽϴ. ߰ ģ "2.16" ̾߱ ٷ . ̸ Ʒ̹Ƿ ᱹ ̸ ״ ް ö󰡴 Դϴ. տ 캸ҵ ̸ ᱹ ̹Ƿ, ִ κ ֽϴ. ̴ ü Ӽ(inheritance) ϰ Ǵ ε, Ӽ ؼ ߿ ̾߱ ȸ Դ . ƹư  ø ˾Ƶ´ٸ ̸ Ƿ κ ø ˾Ƶ ó ֽϴ. ׷ ̸ ϱ ݺ 丷 սô. #hello = #hello true #hello = 'hello' false ù ° 丷 ô. "=" #hello #hello Ȱ üԴϴ. #hello #= ÿ ؼ 翬 ""̶ մϴ. ׷ ° ƾ մϴ. #hello 'hello' Ȱ $h, $e, $l, $l, $o ټ ڷ ̷ ü, ü ""̶ Խϴ. ڷ ̷ ̶ ̰ ̸ ̸̶ Դ . ׷ սô. Ʒ 丷 ʽÿ. 'hello' = #hello false #hello = #bye false #hello , #bye 'hellobye' #hello at: 1 $h #hello copyFrom: 1 to: 4 'hell' #hello size 5 캸 (string) ˾Ƶ ִ κ ø ˾Ƶ´ٴ ֽϴ. ׷ ̸ ٸ ü̱ , ϴ Ȱ ʽϴ. #at: #=, ׸ #size ô ٿ Ȱ , ġ #, ÿ ̸ 丷 ̾Ƴ #copyFrom:to ٸ ߽ϴ. , #, ÿ #copyFrom:to ̸ ̸ ƴ϶ ٷ ߽ϴ. ̸ ö󰡼 ø ϴ. ׷ 迭  ? ׸ 迭  ø ˾Ƶ ? Ʒ 丷 ʽÿ. #(1 2 3) class Array Array superclass ArrayedCollection ArrayedCollection superclass SequenceableCollection 迭 迭 (arrayed collection)Դϴ. ׷ ̳ ̸ 迭 뿡 ٷ ִٴ Դϴ. ٷ 츮 ̸ ö󰬰, ߰ и 迭 (arrayed collection) ־ϴ. ᱹ, ̸, , 迭, ü "迭 " Դϴ. <׸ 2-20> ̸, , 迭 ׸ (Stp2-20.gif) ׷ ̸ ٿ ׷, 迭 츮 ߴ #size, #=, #copyFrom:to ? , Ʒ 丷 ô. #(2 #hello $+) = #(2 #hello $+) true #(2 #hello $+) = #(2 #hello $-) false #(2 #hello $+) = #(2 #hello) false #(2 #hello $+) , #(4 #bye $-) #(2 #hello $+ 4 #bye $- ) #(2 #hello $+) at: 1 2 #(2 #hello $+) at: 2 #hello #(2 #hello $+) copyFrom: 1 to: 2 #(2 #hello ) #(2 #hello $+) size 3 ű ʽϱ? 츮 ٰ ̸ ȴ ø 迭 ״ ˾Ƶϴ. ٰ ̸ó Ÿ ޶, 迭 ǹ̸ Ȯ ϰ ״ ߽ϴ. ̰ ٷ , ̸, ׸ 迭 "迭 "(arrayed collection) Ʒ ̰, 츮 ߴ õ Ʒ鿡 ״ ݴϴ. 迭 뿡 #at: ø ȣ ٸ ݴ ȣ ٲ ִ ? , ֽϴ. ٷ #at:put:̶ Դϴ. Ʒ 丷 ÿ. 'hello' at: 1 put: $j $j #(2 #hello $+) at: 3 put: $- $- ̻? #at:put: ڽ ȣ п ü ѱϴ. ø ü(receiver) ѱ ƴ ȣ п  ü ״ ϴ. ø ü ߴ ˾ƺ ϴ. ׷ٰ ƴմϴ. Ʒ 丷 ʽÿ. 'hello' at: 1 put: $j; yourself 'jello' #(2 #hello $+) at: 3 put: $-; yourself #(2 #hello $- ) ۿ ó ";"̶ ȣ "yourself" ֽ . ⿡ ؼ ߿ ٽ ̾߱ ȸ Դϴ. ƹư #at:put: ø ش ü ȣ п ο ֽϴ. ׷ Է ʽÿ. #hello at: 1 put: $j (߸)  Ǿϱ? <׸ 2-18> ϰ "should not implement" ۰ Բ â Ÿϴ. ü Ž⿡ ̸ ٲ Ȱ Ͼ Դϴ. ̸ 迭 ̱ ̱ #at:put: ø Դϴ. [5] ٷΰ ݱ 츮 ü غҽϴ. ü ְ, ü Ѹ ϴ. 1, -235 , 3.14 Ҽ, '츮 ' , $aó .... ̵ Ѱᰰ ü ü ٷ Ÿ ֽϴ. , "3"̶ ϸ ٷ ü "3" Ÿ Դϴ. ó  ǥ ؼ ü ٷ Ÿ ִ ü "ٷΰ"(literal)̶ մϴ. ƽϱ? սô. "1". ̰ ϳ üԴϴ. "1"̶ ٷ "ü" Ÿ ֽϴ. ̷ ü ٷΰ̶ θ Դϴ. ݸ  ؼ ü ٷ Ÿ , ü "ٷ ƴ "(non-literal)̶ մϴ. ٷ ƴ ǥ м(fraction) ֽϴ. м  ؼ ٷ Ÿ ϴ. (3/4) м "4 3" Ÿ , ؼ "(3/4)" 3 4, ׸ 㸶 ǥ #/ ̷ 丷Դϴ. ̴ (workspace) (3/4) ֽϴ. 3 4 , '/' Ķ Ÿϴ. (3/4) ٷ ƴ Դϴ. м ϰ Ÿ ִ ׷ ̶ ֽ ϴ. Smalltalk ϴ ü κ ڳ ̿ؼ Ÿ "ٷ ƴ "Դϴ. ڰ ݾ ٷΰ ƴ ̾߱ϴ , ̰ Smalltalk ü ִ ϳ ̱ ̰, α׷ ۼϴ ̿ ޴ 찡 ֱ Դϴ. ռ 츮 迭 ؼ ˾ƺҴµ, 츮 迭 ٷΰ (array literal) ߽ϴ. ٷΰ ' ' Ͱ , 迭 ٷΰ #( ) ȣ ߽ϴ. ׷ ⼭ 迭 м  ұ? #(1 2 3/4) #(1 2 3 #/ 4 ) #(1 2 (3/4)) #(1 2 #(3 #/ 4 ) )  ϵ 迭 ٷΰ м ϴ. ֳ ϸ м ٷΰ ƴϱ Դϴ. ٷΰ Ÿµ ٷ ϴ. 迭 ٷ ƴ ִ ٸ ֽϴ. ׷ ⼭ װͺٴ ٷΰ ٷ ƴ ְ, Ȳ ߿ 찡 ִٴ Դϴ. ٷ ƴ ڳ ڷ Ÿ Ʊ , ̷ ü ǥ(variable) ٿ Ÿ ϹԴϴ. ǥ ؼ ٷ 翡 ̾߱⸦ Դϴ. ------------------------------------------------------------- ٸ  迭 ̰ ִ C/C++̳ ĽĮ, Ǵ ̽İ 迭 ٷΰ ʽϴ. ̷ ⺻ "迭" ؼ 迭 ϰ ֽϴ. ׷ Smalltalk 迭 ٷΰ ̿ؼ Ÿ ִ ɷ ֽϴ. ĽĮ 쿡 (set) ٷΰ Ÿ , պٴ 迭 ξ ϴٰ ֽϴ. ٸ  迭 Ѱᰰ ڷ ̱ Smalltalk ξ Ǿ ֽϴ. Smalltalk ϴٺ 迭 󸶳 ϴ Դϴ. ---------------------------------------------------------- ݱ 츮 ü ȭ ü "" "" Ұ, ü ü ڳ Ǵ ȣ ̿ؼ Ÿ ִ° "ٷΰ" "ٷ ƴ " ҽ . 츮 Smalltalk ٷ ü ˾ƺҽϴ. Smalltalk ü ̱ , ü ľϴ ſ ߿ ۾̾ϴ. ʹ ü 踦 Žϰ Դϴ. ̹ 翡 ˾ƺ ͵ ϴ ʿ ̹Ƿ, ٽ ִ ȸ  մϴ. ... :[] C/C++ Ͱ ߿ ڷ: [84] :ȫ (ȵ巡) 1999-05-18 09:47 ȸ:456 + ! , ϱ Ϳ ̾߱Ⱑ ִµ, Ͷ ϴ α׷ ̴ ϴ ɷ ˰ ֽϴ. װ  θ,  Ÿİ ٸ .(̽Ŀ VarPtr(), Peek()Լ, ׸ Poke Ͽ ͸ ϰ ֽϴ.) ׷ C/C++ ֿϽô е Ѱᰰ ͸ ſ ߿ ϰ, Ͱ α׷ Ѵٴ Ǵ ó Ϳ ΰ ʴϴ. ̴ ´ Դϴ. C++, Ư C ͸ α׷ ϱ ư Ǿ ֽϴ. ׷ е ߿ C/C++ Ͱ ߿ ġ ؾ߸ ϴ, ׸ ݵ ׷ ϴ ؼ ǹ ϴ 年ϴ. Java Smalltalk  Ͱ ƿ ǥ ʽϴ. ׻Ӹ ƴ϶ Object Pascal 쵵 Ͱ ǥ ϰ , Ada 꿡 ֽϴ. ׷ ʼ ̾ٸ, ̵  Ѱᰰ Ϳ ؼ ? 帮, ϴ ó ͸ ׷ Ա ⸦ ؾ ŭ 뵵 , ѵǾ ϰ, ׷ ý ȴٴ Դϴ. ׷ ⼭ C/C++ ͸ ۿ ô. 1. (reference) ~~~~~~~~~~~~~~~~~~~~~~~~~~ ó C ǥǾ ڰ ϴ. ڴ Լ ȣ "Ŵ "(call-by-reference) ϱ Ͽ ʿ Դϴ. ϳ ü(object, ⼭ ""̶ ص ǰڽϴ) ̻ ̸ ִٴ մϴ.  ü , ü "A" θ ְ "B" θ ִٴ ̸, ü ٸ ̸ οϴ (reference) ô Դϴ. ̷ ϸ Լ θ ʰ Ҹ Ȱ ü ְ ǰ, ̰ ᱹ " Ŵ " Դϴ. ǹ̷ ̷ ̰, ̰ ּҸ ϰ ٸ ϰ, װ . ĽĮ ȣ ־, C++ 쵵 ϳ ü ٸ ̸ ִ ڸ ξ ̸ ذϰ ֽϴ. ׷ C ڰ , ̹ ִ ü ٸ ̸ ϱ ؼ ͸ ۿ Դϴ. C++ ڸ ϱ , ͸ ؼ Ǵ İ ȥؼ Ǹ ƻ ȥ ߽Ű ˴ϴ. ̹ C Ǿ ̺귯 Լ Ѱᰰ ͸ Ͽ Ŵ Ͽ , ڸ Ͽ Ŵ ϰ Ǹ Լ ڸ ͸ аϱ ư ǰ, ״ ͸ Ŵ ϰ ϴ dz䰡 Դϴ. ׷Ƿ C++ ڴ ̱ Ŀ, ȥ ߽״ٴ Դϴ. , װ C ̰, ̰ Ǿ Դϴ. 2. 迭 ڷ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C/C++ ͸ ȯ Ģ ֽϴ. ߿ "迭 ̸ 迭 ù ° Ҹ Ű ̴"( ΰ, 1991) Ģ װԴϴ. ᱹ Լ 迭 ڷ Ѱ ٴ Դϴ. C/C++ 迭 , ̸ ͷ ް, 迭 ũ⸦ Ƿ ũ⸦ ΰų ڷ ü ǥ(null-terminator ) ξ óϴ üϰ ֽϴ. ĽĮ̳ Smalltalk, Ada κ  迭 ڷ , ̶ ʿġ ʽϴ. 迭 ڷ ޵ ϳ ڷ̰, 迭 ġ ƴ϶ 迭 ũ Ÿ ٸ Ӽ鵵 Բ ޹ ֵ Ǿ ֽϴ. Ư Object Pascal̳ Ada Ե " 迭" Ҽ ־, C/C++ ϸ鼭 ϰ 迭 ó ֵ ϰ ֽϴ. Smalltalk 迭  ڷ() ü Ƿ 迭 ϰ ִٰ ص ƴ ϴ. ƹư 迭 Լ ڷ ٴ ū ̸, 迭 輺 ˻ ý Ȱ ⿡ ִ Դϴ. 3. 迭 Ҽ ̴. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ C/C++ 迭 Լ Ѱ ٺ, ׸ C K&R 䱸 ׿ ޾̸鼭 ޾ ġϱ ؼ 迭 ó ϵ ߽ϴ. 迭 ũ⺸ ū ȣ ο ϴ, ƹ ߸ մϴ. ̰ α׷ ְ ٺ Ȱ ־ , ̸ ˻ϱ ؼ "BoundsChecker" ʿϰ Ǿϴ. C ÿ ʰ ٷϴ. ׷Ƿ  ϸ ȿ ڵ带 ϴ ְ Դϴ. ᱹ 迭 谪 ̰ α׷ ü ӵ ߸ ֱ C ε, ó κ þ ؼ ڰ 迭 谪 ˻ ֵ ֽϴ. ȭ ߴ޷, Object Pascal 迭 ڵ ٲپ ְ ֽϴ. C/C++ó 迭 ϰ ʰ 迭 DZ ȥ Դϴ. ƹư ̸ ϴ 踦 70뿡 C մ , α׷ ȭǰ 迭 谪 ˻ ̺ ߻Ǵ , ̸ ϱ ؼ õǴ α׷ , C ظ ãƺ Դϴ. ȭ Ǿִٰؼ ȭ ʿ . a[3] a[3] , ̸ *(a+3) ġ Ⱑ þƾ մϴ. ڰ *(a+3) a[3] ȥؼ ϰ ȴٸ, C ȥ ̰. 4. ܼ ü ~~~~~~~~~~~~~~~~~~~~~~~ C Ϳ 迭 ڼ ν ū ȫ ġ µ, C++ "ܼ ü " ν 谡״ٰ ϸ, ڰ ĥ? C++ ư C ü α׷ з Ű ؼ C κ ״ ޾Ƶ鿴 ϴ. ׷ٺ Ϳ 迭 ȣ Կ ѹ ȥ ᱹ C++ ó Դϴ. ׷ ⿡ Ͽ, ü α׷ֿ ٽ ǥ "ü ǥ " C++ ѹ Ǽ ŵϰ µ, װ ٷ "ܼ ü "̶ Դϴ. ܼ 巯 и "ܼ ü " "ü "ٴ __ܼ__ Դϴ. ׷ "ܼ"̶ ᱹ ͸ ʰ ü ǥ ϴ 濡 ̸ ֽϴ. ² غ ü δ C++, Java, Smalltalk, ׸ Object Pascal ־ϴ. Objective-C C  Ư Smalltalk  óϱ , ϴ Smalltalk İ ϴٰ ϸ ˴ϴ. ׷ ̵  C++ ϰ ü ǥϴµ ־ Ѱ ü ϰ ֽϴ. (variable)  ϴ "â" ƴ϶,  ü ̸ ٿִ ǥ(tag) Ѵٴ Դϴ. , ̴ ߴٰ ϸ ˴ϴ. ׷ C++ ܼ ü մϴ.  (class) , ڷ ϴ Ǹ, ش ŭ ũ⸦ ˴ϴ. ̷ ü ıǰ, Լ ̿ ϰ ˴ϴ. Լ Ÿ ü ̵ ؼ ͸ Ǵ Դϴ. Delphi ۼ α׷ ϰ C++Builder ۼ Ȯ ֽϴ. ü ϴ Object Pascal д ε ǹ̸ ľ , C++Builder ü ؾ ϹǷ ƴմϴ. ͸ ϴ ڵ̶ , ϰ 鿡 , ׸ ⵶ ϸ ܼ ü ٴ Ȯ ü մϴ. Java Smalltalk Դϴ. ̵  ش ü ü Ǵ â ƴ϶, ش ü ǥ Դ . ش ͷ óǰ ִ ̸, Լ (collection) ü Ҹ ƹ ״ Ÿ ִ Դϴ. Set *aSet = new Set; aSet->add(3); aSet->add(4); aSet->add(5); cout << *aSet; delete aSet; Set aSet = new Set(); aSet.add(3); aSet.add(4); aSet.add(5); var ASet: TSet; begin ASet := TSet.Create; with ASet do Add(3); Add(4); Add(5); end; ASet.Free; end; | aSet | aSet := Set new. aSet add: 3; add: 4; add: 5; и ü ϴ ܼ ü ϴ ͺ ˾ƺ ֽϴ. C++ ü ϶ ̰ Ϲ ؾ ϰ, Լ ڷ ü ѱ θ α׷Ӱ Ű ־ մϴ. ü ܼ ü ξ ϴٰ ڴ մϴ. ڸ, C/C++ ʹ ϱ 쿡 , ߱ϴ Ada Ÿ ٸ  Ϳ ϰ ֽϴ. Ͱ ڴٰ , к ؾ Դϴ. Ư Object Pascal 쿡 C/C++ ذ ϰ , ͸ ذ ִٸ, ͸ ʴ Դϴ. ɷ ϴ Java Smalltalk ־ ʾҴ ô. BASIC GO TO ó, ᱹ GO TO ʰ α׷ ϴٴ ϱ⿡ ϳ ð ɷ, Smalltalk Forthó ƿ GOTO 쵵 Ƿ, 뿡 ؼ ؾ Դϴ. :[] Smalltalk #21 ڷ: [85] :ȫ (ȵ巡) 1999-05-20 20:44 ȸ:147 Smalltalk #21 1999. 5. 21. ȫ mailto:andrea92@hitel.net ====================================== 2. ü ̾߱ 2.1. ü? 2.2. 2.3. ü 2.4. 2.4.1. 2.4.2. ˾Ƶθ ͵ 2.4.3. ======================================= 2. ü ̾߱ ------------------------------------ 2.4. ~~~~~~~~~~~~~~~~~~~~~~ 翡 츮 Smalltalk ⺻ ͵ ˾ƺҽ .  𸣰, Smalltalk ִ Ư ľؾ߸ ü α׷ ޾ Դϴ. ڴ C++ ߱ ܾմ . ݱ 츮 ˾ƺ ͵ C++ ʽ ϴ. , ݱ 츮 Smalltalk ߿ 70% ̳ ٸ ϴ. ׸ŭ Smalltalk ܼմϴ. Ƿ ġ , Smalltalk ִ ü ̴ Ѻ鼭, ü α׷ 信 ͼñ ٶϴ. 2.4.1. ----------- 翡 սô. ռ ǻ鼭 о Դϴ. * Smalltalk 丷 () ǹ * ø ̷ : (message), ޴(receiver), ǥ(selector), (parameter) * ٸ : ܸ(unary) , 㸶(binary) , 踶 (keywored) * ̻ ǥ ִ 丷 . 켱 Ģ. * (class) ü(instance) * ü ü ̷ (κ) * ü Ž⸦ Ͽ ü 鿩 * , Ҽ, м, , , ̸, 迭, , ˾Ƶ ִ õ. * ü (ü ) * ٸ . * Smalltalk 丷 Է, , . 2.4.2. ˾Ƶθ ͵ ------------------------- [1] Object ü ˾Ƶ õ anObject class anObject ѱ. anObject isKindOf: aClass anObject aClass ٿ ִ , , ׷ ѱ. anObject isNil anObject (nil)̸ , ׷ ѱ. anObject notNil ݴ̴. anObject inspect anObject ü ϴ е ŽѴ. [2] (class) ˾Ƶ aClass superclass aClass ѱ. [3] (Number) ü ˾Ƶ aNumber1 + aNumber2 aNumber1 - aNumber2 aNumber1 * aNumber2 aNumber1 / aNumber2 aNumber1 // aNumber2 Ѵ. aNumber1 \\ aNumber2 Ѵ. aNumber negated aNumber ȣ ٲ۴. aNumber numerator aNumber ڸ Ѵ. aNumber denominator aNumber и Ѵ. aNumber reciprocal aNumber Ѵ. aNumber between: a to: b aNumber ڰ a b̿ , ׷ ѱ. [4] ˾Ƶ ִ anInteger factorial anInteger (x!) Ѵ. anInteger asCharacter anInteger ȣ ϴ ڸ ѱ. anInteger asFloat anInteger Ҽ(floating-point number) ٲ۴. [5] Ҽ(float) ˾Ƶ ִ aFloat rounded Ҽ aFloat ݿøѴ. aFloat truncated Ҽ aFloat Ҽ ϸ ߶. [6] (Boolean) ˾Ƶ ִ aBoolean | aBoolean ߿ ϳ ̸ ѱ. aBoolean & aBoolean , ׷ ѱ. aBoolean not aBoolean ̸ , ̸ ѱ. aBoolean and: [aBlock] aBoolean ̸ aBlock ϰ, aBlock 쿡 , ׷ ѱ. aBoolean ̸ aBlock ʰ ѱ.(#& ª ) aBoolean or: [aBlock] aBoolean ̸ aBlock ϰ, aBlock 쿡 , ׷ ѱ. aBoolean ̸ aBlock ʰ ѱ.(#| ª ) [7] , ̸, 迭 ˾Ƶ container size ش ü(container) ҷ Ǿ ִ Ѵ. container , anotherContainer ü Ѵ. container at: anInteger container ü anInteger ° Ҹ . container at: anInteger put: anObject container ü anInteger ° п anObject ü ִ´. container copyFrom: a to: b container ü ȣ a b κ Ҹ Ƴ. [8] ˾Ƶ ִ aCharacter isUppercase ڰ 빮̸ ѱ. aCharacter isLowercase ڰ ҹ̸ ѱ. aCharacter isLetter ڰ ̸ ѱ. aCharacter isDigit ڰ (0-9)̸ ѱ. aCharacter isVowel ڰ (a,e,I,o,u)̸ ѱ. aCharacter asciiValue ڰ ȣ ѱ. [9] 켱 Ģ ϳ 丷 ð κ ƵǸ, Ƶ˴ϴ. * ܸ * 㸶 * 踶 [10] Smalltalk Ǯ̱ Ǯ̱ " "ȿ , Smalltalk Ѵ. 2.4.3. ---------------- [1] Ϳ ΰ Է "Test.st" Ͽ ϰ ڿ, ο ͸ ߴ ô. [2] Smalltalk ¥ Ÿ "Date" ֽϴ. Date ô. ׸ Date today , Date #today ø ¥ ü  ֽϴ. ü 񱳵 ִ ˾ƺ , ٰ ¥ ü ٸ ô. [3] (SmallInteger) ߿ ū ϱ? [4] Ǯ̱ۿ ū ǥ(") Ϸ  ؾ ұ? [5]  0 ? Smalltalk ô. 0 ٸ Smalltalk  ˸ ѷݴϱ? [6] ū (LargeInteger) Ž ô. ü ְü Ȧü ˾ƺ, ְü ȣ , ̸ ô. [7] Ʒ ǥ ϼ ʽÿ. & -------------------------------- -------------------------------- | -------------------------------- -------------------------------- =========================================================== ° ϴ. Smalltalk  ü óϰ, ü  ø , ü ϴ  ó ִ ؼ ߽ϴ. ׸ Smalltalk ü Ѵٴ ͵ ־ϴ. ᱹ Smalltalk ̷ ü ̷ ý̱⿡, Smalltalk Ϸ ̷ ü Ư ľϴ ߿ ٴ ߽ϴ. Smalltalk ü , ڽ  ؾ ˰ ִٴ , ܿ Ǿ ŭ Դϴ. ° Smalltalk ⺻ ȯ (workspace) ü Ž(object inspector) ؼ ߽ϴ. Smalltalk ü ٷ ־ ϴ ģ Դϴ. 翡 е鿡 ְ ü鿡 ؼ ˾ƺ մϴ. ü ̸ ٿ ̸ ؼ ü ִ ˾ƺ Դϴ. ݱ ַ ܼ ڿ , ׸ ٷ Ϳ ʹ ϸ鼭 ִ ü鿡 ؼ ˾ƺ Դϴ. ̷ν ü з Դϴ. ϼŵ ϴ. :) ... :[亯] ü ڰ...? ڷ: [89] :ȫ (ȵ巡) 1999-05-26 05:15 ȸ:440 + ! ȳϼ? , ü , ϴ ü з ؾ дϴ. 鸶 ϴ ݾ ٸ, ϴ ߾, Ʒ ǵ Ǿ Ѵٰ մϴ. - 强(encapsulation) - (polymorphism) - Ӽ(inheritance) 鼭 ̶ öڰ ´... 켱 强. ̰ ϳ ü ¸ Ÿ ڷ ü ൿ ϴ (method) Բ ִ ϴ ϴ. ü (class) , (member) ؼ ü ϴ. ü ܺο Ժη ü ٲ ϴ 强 , κ  (private), ͳ(public), ȣ (protected) ٱ ϴ 强 մϴ. ׷ ƴϰ Smalltalk е , 巯 ϱ⵵ մϴ. · 强 ü ü Ģ(̸ interface Ǵ protocol̶ ) ؼ ִٴ ߿մϴ. TV ϴ ƴ϶ ġ ϴ°Ŷ ٰ ˴ϴ. . ̴  (message) ٸ ü , ø ü(receiver) ٸ ϴ մϴ. (dynamic binding), ߺ (overloading), ̾Ƴ(dispatching) ϱ ˴ϴ. Ӽ. ̴  Ư ״ ޾Ƽ ο ִٴ Դϴ. ̸¸ ""̶ϴ ִ а ״ ޾Ƽ Ӱ "л", "" Դϴ. Ƹ JavaScript 强 Ӽ ʴ´ٰ ˰ֽϴ. ¸ ڰ  ü  Ѵٰ ˰ ֽϴ. Ӽ Ѵٰ ϰ. Visual Basic ü (source) Ӽ ʰ ֱ ̶ մϴ. , ̿ Ǹ ... Ȥ ߸ ˰ ִ ִٸ ٷ ֽʽÿ. ׷. :[] Smalltalk #22 ڷ: [93] :ȫ (ȵ巡) 1999-07-14 16:31 ȸ:128 Smalltalk #22 1999. 7. 14. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! a 3.1.1. ˸ ü - Transcript 3.1.2. ˸ ˾Ƶ ..... ======================================= 3. ü ä --------------------------- 翡 Smalltalk ü ؼ ⺻ ͵ ߽ϴ. 켱 ü , ׸ ̷ ü  , ü 츮 ø ϰ  óϴ ؼ ˾ƺҽϴ. Smalltalk α׷ ߿ ϰ ִ (workspace) ü Ž (object inspector) ؼ ˾ƺҽϴ. ̸ ̹ 翡 ϸ鼭 ְ, α׷ֿ ü鿡 ؼ ϰ Դ . 翡 ٷ ü ַ , , üε , ̹ ʹ ˸(transcript)̳ Է ó ̰ ϴ ü ؼ ƺ Դϴ. ׸ ü ؼ ˾ƺ Դϴ. ϴ ߿ Smalltalk ſ ߿ ϰ Դϴ. ̷ ׵ C/C++ó ϰ ƴմϴ. ׳ õǴ 丷 ϴٺ Դϴ. ֱ⵵ ̰, ϴٺ ° ٴٶ Դϴ. ô. ׷ Smalltalk ȯ ˸ â ִ "˸" սô. 3.1. ˾ƺ, ˸! ~~~~~~~~~~~~~~~~~~~~~ Smalltalk Dolphin Smalltalk ô. ׷ â Դϴ. ݱ 츮 丷 ߴ (workspace) Բ "˸"(transcript) ϴ â Դϴ. ˸ Ϳ ũ ޶ ʽϴ. <׸ 3-1> Ϳ ˸ (Stp3-1.gif) ˸ǿ Ȱ Smalltalk 丷 ְ, 丷 ϰ 캸 Ž ֽϴ. Ϳ ϴ ⺻ 丷 ״ ϴ Դϴ. ׷ ü "˸" Smalltalk ȯ濡 ؾ ϴ ϱ? ˸ Smalltalkȯ ڿ ˷ װ Ͽ ִ ߿ Դϴ. ̸׸ Smalltalk ۾ϴ ߿ ڶٰų, , Ǵ Ÿ ü ִ ٷ(package) о鿴ٴ ϴ ˸ǿ Ÿϴ. ׷Ƿ ڴ ˸ ֽϰ, ⿡ ϵ ǰ Ѿ ⸣ ϴ. ˸ ̷ Smalltalkȯ 踦 ֱ , 츮 α׷ ϰų ۾ Ϳ ϴ . ˸ǿ Smalltalk ȯ濡 ü 丷 ϰ ϴ ϴ. ׷ ˸ Smalltalk ý۸ ִ ƴմϴ. е ˸ǿ ֽϴ. ۼ ̿ ؼ ƴ϶, ˸ ˾Ƶ ִ ø Ͽ Դϴ. ˸ǿ Ͽ, ü ˸  ˾Ƶ ִ 캾ô. Smalltalk üԴϴ! 3.1.1. ˸ ü - Transcript ------------------------------- ü ø ؼ ü ҷ մϴ. ̸׸ "3 + 4" ϴ ø "3"̶ ü ҷ ϰ, 10 ϱ ؼ "10" ־ մϴ. 3 + 4 7 10 factorial 3628800 ˸ǿ  ø ؼ 켱 ˸ ü ؾ մϴ. Smalltalk ˸ "Transcript" θϴ. 츮 Integer ҷ, String̶ θ ó, ˸ Transcript θ Ǵ Դϴ. Ʒ Ϳ Transcript 丷 ô. (Smalltalk 빮ڿ ҹڸ Ѵٴ տ ֽϴ.) Transcript a TranscriptShell "Transcript", ˸ "a TranscriptShell"̶ ֽϴ. ˸ (transcript shell) Խϴ. ƹư ⼭ ߿ Transcript Smalltalk ϳ ü Դϴ. ׷ ̹ "Transcript" Ž ô. ׷ Ʒ <׸ 3-2> ȭ Դϴ. <׸ 3-2> "a TranscriptShell" Žϴ (Stp3-2.gif) ôٽ Transcript ִ ְüԴϴ. ߿ Transcript ϰ ִ ǹ̸ ϴ 幰, ƹư ˸ǿ ø ؼ Transcript ؾ Ѵٴ ͸ θ ǰڽϴ. 3.1.2. ˸ ˾Ƶ ----------------------------- ˸(Transcript) Smalltalk ϳ üԴϴ. ˸ ۾ ؼ ü ˸  ø ˾Ƶ ִ 캸ƾ մϴ. ˸ ˰ ִ Ʒ Դϴ. Transcript nextPut: aCharacter aCharacter ڸ ˸ǿ . Transcript nextPutAll: aString aString ˸ǿ . Tanscript space ˸ǿ ĭ . Transcript cr ˸ǿ ٲ۴. 켱 ˸ǿ ø ͸ ô. "File > New" ޴ ϸ Ͱ Դϴ. ο 켱 ͸ ϴ ϴ. ׷ ˸ <׸ 3-1>ó ÿ ֵ ġ ô. ̷ ϸ Ϳ ð ٷ ˸ǿ ޵Ǿ ϴ ϴ. ׷ ˸ǿ ִ ô. Ϳ 丷 Է ô. Transcript nextPutAll: 'ȳϼ?'. Transcript nextPutAll: ' ˸ǿ ϴ.'. 丷 Smalltalk ֽϴ. ϴ Դϴ. پ 丷 ϴ Դϴ. 쿡 ϰ ִ ٿ Ŀ ġ ϰų(Ctrl-E), ų (Ctrl-D) Ž (Ctrl-I) ֽϴ. ° 丷 ü ̸ Ѳ ϰų ų Žϴ ֽϴ. Ʒ <׸ 3-3> 캸 ̸ ֽϴ. <׸ 3-3> Ϳ 丷 ̸ (Stp3-3.gif) ׷ ⼭ ̻ Ѳ ϱ ؼ ħǥ(.) ־ մϴ. Smalltalk "ɰ ̸ ϱ ؼ ħǥ Ѵ" () ֽϴ. ִ ɾ ħǥ , <׸ 3-3>ó ̻ ɵ ̷ 丷 ɰ Ʒ ϱ ؼ ݵ ħǥ ʿ Դϴ. 밳 پ 丷 ϴ ̳ ̸ ϴ ̳ ٸ ,  쿡 ݵ ̸ ѹ ؾ ϴ 쵵 ֽϴ. ̴ Ȳ ϸ Դϴ. ƹư 츮 ̸ ڽϴ. <׸ 3-3>ó 丷 ̸ ۼ踦 丷 ʽÿ. ׷ ˸ǿ <׸ 3-4> ߰ϰ Դϴ. <׸ 3-4> Ϳ ˸ǿ (Stp3-4.gif) 丷 ڸ Ϳ Դϴ. ---------------------------------------------------------- ȳϼ? ˸ǿ ϴ. ---------------------------------------------------------- ׷ ̻ ֽϴ. 츮 и , ˸ ٿ ϴ. ׷ ϱ? #nextPutAll: ô ˸ǿ ٲپ ϴ. ᱹ ˸ǿ ٲٱ ؼ 츮 ˸ǿ ٲٶ ø ־ մϴ. Ʒ ʽÿ. < 1> ˸ǿ α׷ ---------------------------------------------------------- Transcript nextPutAll: 'ȳϼ?'. Transcript cr. Transcript nextPutAll: ' ˸ǿ ϴ.'. ---------------------------------------------------------- ô. . ̴ Ѳ ؾ Ÿϴ. Ǿ ִٸ Ѳ ̸ Ͻʽÿ. ˸ , ̿ ٲ ִٴ ˰ ˴ϴ. ٷ #cr̶ ø Transcript ü ־ Դϴ. ⼭ cr Carriage Return ϴ , ٲپ Դϴ. Transcript ü ˾Ƶ ÷ space ִٰ ߽ϴ. ׷ < 1> Ʒó ļ ô. < 2> #space ø ˾Ƶ ˸ ---------------------------------------------------------- Transcript nextPutAll: 'ȳϼ?'. Transcript space. Transcript nextPutAll: ' ˸ǿ ϴ.'. ---------------------------------------------------------- 丷 Ѳ ˸ǿ Ʒ Ÿ ϴ. ---------------------------------------------------------- ȳϼ? ˸ǿ ϴ. ---------------------------------------------------------- ǥ(?) "" ̿ ĭ ĭ ϴ. ̷ #space ø ָ ĭ ĭ ϴ. Transciprt #nextPut: ̶ õ ˾Ƶϴ. ô ݱ 츮 #nextPutAll: ޶ ڸ ڷ ޾Ƶ Դϴ. Ʒ < 3> ô. < 3> #nextPut: ---------------------------------------------------------- Transcript nextPut: $A. Transcript nextPut: $B. Transcript nextPut: $C. ---------------------------------------------------------- 'A', 'B', 'C' ڰ ٴڴٴ پ Ÿϴ. ׷ϱ nextPut: ڸ ˸ǿ ᳻ մϴ. 'A' $A ٸ ü ð? ü ٸ 𸣰ڴٸ ʽÿ. 'A' $A #class ø ָ Ȯ ü ٸٴ Դϴ. ׷ ⼭ ֽϴ. Transcript nextPutAll: 'A'. (1) Transcript nextPut: $A. (2) , ٸ? к 帮 Ȱϴ. ׷ #nextPut:̶ ʿ ϱ? װ ٷ #nextPutAll: #nextPut: ξ ϱ Դϴ. Ȱ µ ־ #nextPutAll: #nextPut: ǻͿ Ѿ ϰ, ٴ Դϴ. ׷ Ÿ ؼ #nextPutAll:ٴ #nextPut: ϵ մ . ĸ ´ٰ ź ʰڽϱ?(ΰ, 1992) ... :[] Smalltalk #23 ڷ: [94] :ȫ (ȵ巡) 1999-07-14 16:31 ȸ:99 Smalltalk #23 1999. 7. 14. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.1.1. ˸ ü - Transcript 3.1.2. ˸ ˾Ƶ b3.1.3. ˸ǿ ü ᳻ 3.1.4. յ ..... ======================================= 3. ü ä --------------------------- #22... 3.1.3. ˸ǿ ü ᳻ --------------------------- ݱ 츮 ˸ǿ ҽϴ. սô. Ʒ ˸ǿ  ؾ ұ? ---------------------------------------------------------- ݺ ִ '' ô. 1 + 2 3Դϴ. 2 10 ****Դϴ. 10 ϱ? ٷ *******Դϴ. 'abc' $a $b $c ̷ ְ, ̴ 3 Դϴ. ---------------------------------------------------------- ׷ ˸ǿ ô. ϴ ݱ ˸ǿ ִ ڵ ô. ( (ü) ۼ踦 ˴ϴ.) ó ô. ݺ ִ '' ô. , ȿ ǥ  ֽϴ.  ϸ ? ռ ٿ ؼ ӿ ǥ ִ ϴ. ﳪʴϱ? Ʒ ϸ ˴ϴ. Transcript nextPutAll: 'ݺ ִ '''' ô.' Transcript cr.  ϰڽϱ? 1 + 2 3Դϴ. մϴ. Transcript nextPutAll: '1 + 2 3Դϴ.'. ϸ Դϴ. ׷...  ؾ ڽϱ? 2 10 ****Դϴ. 츮 , ̿ ȲԴϴ.  ؾұ? Ϳ 2 ** 10 1024 丷  , ״ ̿ؼ Transcript nextPutAll: '2 10 1024Դϴ.'. Transcript cr. ̶ ֽϴ. ׷ ص , 2 20 30ó ٲ Ǹ, 丷  , ̿ؼ ٽ ˸ մϴ. ̰ ʹ ȿ?  ٷ ˸ ִٸ ſ Դϴ. ! ֽϴ. ü ڽ ȭ鿡 ǥõǴ ״ ˸ǿ ֽϴ. 1̳ 3 'abc' ״ ֽϴ. Ʒ 丷 ʽÿ. 3 printOn: Transcript. 3 (˸ǿ) 3̶ ü #printOn:̶ ø Ƚϴ. ׷ ˸ǿ '3' ϴ. ̷  ü #printOn: ø ü ״ #printOn: ޵ ڷ ϴ. 쿡 ˸(Transcript) Ƿ 翬 '3'̶ ü ˸ǿ Դϴ. ׷ ô. $a printOn: Transciprt $a (˸ǿ) ˸ǿ "3$a" Դϴ. ⼭ '3' ü 3 #printOn: ø ̰, ٷ ̾ '$a' ˴ϴ. $a ü printOn: ø ü ״ ˸ǿ Ÿϴ. ⼭ ˸ ǿ #cr ø ٲ ʽϴ. ̰ ̿ϸ տ ̾߱ ״ ˸ ֽϴ. մϴ. Ʒ ʽÿ. ϴ 丷 ϱ "3$a" ִ κ ô. (2 ** 10) printOn: Transcript 1024 (˸ǿ) ˸ǿ 2 10 ״ Խϴ. 2 10 ϴ κп ȣ ѷ? ǥ 켱 踶(keyword) #printOn:ٴ 㸶(binary) #** ƵDZ ȣ ʿ ʽϴ. ׷ ȣ ѷָ ˾ƺ ֽϴ. , ̷ ؼ ü ˸ǿ ״ ˾ƺҽϴ. ˸ǿ "1024" , 츮 ô. < 4> ---------------------------------------------------------- Transcript nextPutAll: '2 10 '. (2 ** 10) printOn: Transcript. Transcript nextPutAll: 'Դϴ.'. Transcript cr. ---------------------------------------------------------- ׷ٸ Ʒ 嵵 Ȱ ̿Ͽ ֽϴ. 10 ϱ? ٷ ***** Դϴ. < 5> ---------------------------------------------------------- Transcript nextPutAll: '10 ϱ? ٷ '. (10 factorial) printOn: Transcript. Transcript nextPutAll: 'Դϴ.'. Transcript cr. ---------------------------------------------------------- #printOn: ø ˾Ƶ ִ ü ڸ ƴմϴ. 'abc' $a, $b, $c ̷ ְ, ̴ 3Դϴ. ᳾ Դϴ.  ϸ ȿ ? Ͱ  ٸ ʽ . < 6> ---------------------------------------------------------- 'abc' printOn: Transcript. Transcript nextPutAll: ' '. $a printOn: Transcript. Transcript nextPutAll: ', '. $b printOn: Transcript. Transcript nextPutAll: ', '. $c printOn: Transcript. Transcript nextPutAll: ' ̷ ְ, ̴ '. ('abc' size) printOn: Transcript. Transcript nextPutAll: ' Դϴ.'. Transcript cr. ---------------------------------------------------------- Smalltalk ɰ ħǥ ϱ , ٿ ֽϴ. б ֱ ϰ ؼ մϴ. ׷ Ƽ Ʒ ڽϴ. < 7> ˸ǿ ü ᳻ ---------------------------------------------------------- Transcript nextPutAll: 'ݺ ִ '''' ô.' Transcript cr. Transcript nextPutAll: '1 + 2 3Դϴ.'. Transcript nextPutAll: '2 10 '. (2 ** 10) printOn: Transcript. Transcript nextPutAll: 'Դϴ.'. Transcript cr. Transcript nextPutAll: '10 ϱ? ٷ '. (10 factorial) printOn: Transcript. Transcript nextPutAll: 'Դϴ.'. Transcript cr. 'abc' printOn: Transcript. Transcript nextPutAll: ' '. $a printOn: Transcript. Transcript nextPutAll: ', '. $b printOn: Transcript. Transcript nextPutAll: ', '. $c printOn: Transcript. Transcript nextPutAll: ' ̷ ְ, ̴ '. ('abc' size) printOn: Transcript. Transcript nextPutAll: ' Դϴ.'. Transcript cr. ---------------------------------------------------------- 츮 ߿ Ǿϴ. ڰ ٴ ƴմϴ. ϰ ٸ ֽϴ. ٵ Դϴ. ƹư ̷ ˸ Ÿ Transcript ü #nextPutAll:, #nextPut:, #cr, #space ø ̿ν ˸ǿ ʰ ֽϴ. ƿ﷯ ü #printOn: ø ˾Ƶ , ø ̿ؼ ˸ǿ ü ǥ ־ϴ. ׷ ⼭ 丷 캾ô. Transcript nextPutAll: 'I am a boy.'. (1) 'I am a boy.' printOn: Transcript. (2) 丷 Ȱ ұ, ٸ ұ? 丷 ٸ ֽϴ. (1) I am a boy. ˸ǿ Ÿ, (2) 쿡 'I am a boy.' ˸ǿ Ÿϴ. #nextPutAll: ϱ ؼ ǥ Ÿ , #printOn: ü Ÿ ״θ ǥϱ ǥ ؼ Ÿ ˴ϴ. Transcript nextPut: $a. (1) $a printOn: Transcript. (2) 츦 캾ô. (1) 翬 A Ÿ ̰, (2) $A Ÿϴ. #nextPut: Ÿ, #printOn: Ÿ $ǥñ Բ ˸ǿ Ÿϴ. ַ ˸ǿ ڿ ˷ #nextPutAll:̳ #nextPut: ϰ, ü Ÿ #printOn: ϴ. ---<>---------------------------------------------------------- #printOn: ѱ ڰ ϴٰ ߽߰ϴ. Ʒ 丷 ô. '츮 ' printOn: Transcript. ˸ 캸 ޶ ǥ ְ ӿ  ѱ Ÿ ʽϴ. ִ '1 3 Ȧ' printOn: Transcript. 丷 캸 ޶ '1 3'̶ Ÿϴ. ѱ ϴ. ü  ... ڰ о #nextPutAll: ϰ ֱ , ֽ . ڰ Object Arts翡 Ǹ Դϴ. ƹư ϴٴ ϴ. ---------------------------------------------------------- 3.1.4. յ ------------------ Smalltalk α׷ ϰų ϳ ü ø ϴ 찡 ֽϴ. ׷ ̷ ü ø ø ޴ ü(receiver) ̸ شٴ ̶ ֽϴ. Ʒ ô. < 8> ü ---------------------------------------------------------- Transcript nextPutAll: '츮 '. Transcript nextPutAll: ' ¾. '. Transcript cr. Transcript cr. Transcript nextPutAll: '̻ α ùӸ.'. Transcript cr. ---------------------------------------------------------- ׳ ⸸ ص ¥ ƴ ϴ. ۼ ġ ϸ ϴ. 쿡 ٷ յ (cascaded message) ϸ ſ մϴ. 丷 ϳ ħǥ ְ, ڿ ø ü ̸ ݴϴ. ׷ յ ô ɹ ħǥ ʰ ֹ(;) ϴ. ׸  ø ü ̸ ٷ ø ϴ. ̷ ϸ ֹ ô ٷ ɿ ø ü ״ ޵˴ϴ. ⸦ ׷ ʽϴ. < 8> յ ø ؼ ٽ Ʒ ϴ. < 9> յ ø ---------------------------------------------------------- Transcript nextPutAll: '츮 '; nextPutAll: ' ¾. '; cr; cr; nextPutAll: '̻ α ùӸ.'; cr. ---------------------------------------------------------- ⼭ #nextPutAll:κ #cr ô ù ° õ Transcript ü յ ˴ϴ. ̷ ϸ ξ ϰ ۼ ְ ˴ϴ. ׷ ̿ յ ô ߸ Ǹ ſ ȥϰ ϴ. 丷 ؼ  ٽϱ? 3 + 2 - 1; * 100 ? 400 ɱ, 500 ɱ? Ϳ 丷 Էϰ 500 ˴ϴ. ϴ "3" "+ 2" ð 5 ϴ. ׷ "5" "- 1" ð , ⼭ յ "* 100" Բ ϴ. "- 1" "5" 4 ħ "5" "* 100" Ǿ "500"̶ ˴ϴ. α׷ ۼ ̷ ָ ۼϸ ϴ. ׷ յ ø ߸ ̿ϸ ξ ϰ б ֽϴ. ---<>---------------------------------------------------------- ⵶ α׷ ۼϱ ؼ ϴ (source code) մϴ. ۿ ǻͿ ɹ ϴ. ׷ б ſ ߿մϴ. ƹԳ Ŀ ٽ о α׷ 帧 мϷ ſ ް ˴ϴ. Dolphin Smalltalk 丷 (syntax highlighting) ϴ ͵ ٷ ̷ Դϴ. ġ ȵ˴ϴ. Ư Smalltalkó ü ſ ª α׷ ۼ ֱ ġ մϴ. ϰ 鿩 (indentation) ؾ մϴ. < 9> , Transcript Ʒ ִ տ ĭ  ֽϴ. ̴ յ Ư õ ϳ ü յ ǥ Դϴ. ̿ Բ 鿩 Ұ Դϴ. , κ , и θ ξ бⰡ մϴ. ڵ ֵ ϵ, α׷ ϴ ־ ָ ξ б ˴ϴ. ٽ 帮, ŷӴ ⵶(readability) ̱ ؼ 鿩 ǥ Ȱؾ Դϴ. ---------------------------------------------------------- =========================================================== ݱ 츮 ˸ǿ ؼ ˾ƺҽϴ. ˸ Smalltalk ȯ п ߿ ˷ ̿ϴ â Ӹ ƴ϶, α׷ ʿ ִ ߽ϴ. ƿ﷯ ü #printOn: ø ˾Ƶ´ٴ ͵ ˾ƺҽϴ. ϳ ü ̻ ø յ ø ޴ ü(receiver) ̸ ִ ͺٴ յ ø ̿ϴ ξ ϴٴ ͵ ˾ƺҽϴ. α׷ֿ ſ ߿ϰ ٷ ǥ(variable) ؼ ˾ƺ ϰڽϴ. ǥ ϸ μ Smalltalk ǹ ϴ ü ̸ ٿ ֽϴ. ... :[] Smalltalk #24 ڷ: [95] :ȫ (ȵ巡) 1999-07-20 16:52 ȸ:87 Smalltalk #24 1999. 7. 20. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ a3.2.1. ̸ ? 3.2.2. ٷΰ ǥ 3.2.3. ǥ ..... ======================================= 3. ü ä --------------------------- 3.2. ǥ λ ~~~~~~~~~~~~~~~~ ݱ 츮 ü ø ҽϴ. ̷ ؼ ü ǵ ޾ҽϴ. ׷ ̷ ü κ ڽ ϰ ׳ ״ ҽϴ. 3 + 4 7 丷 "3", "4", "7"̶ ü ׳ а Դϴ. װ ü ΰ ϱ⿡ ٸ ġ Դϴ. ׷  ü 츮 ߿ ǹ̷ ٰɴϴ. ̳ ؼ  ü װ ū ǹ̸ ֽϴ. ̷ Smalltalk ü , ߿ Ưϰ ǹ̰ ִ ü ְ, ׷ ü鵵 ִ Դϴ. 츮 ⼭ ̷ ǹ̸ ִ ü鿡 ̸ οϴ ˴ϴ. ü ߿ ϳ ̸ ٿشٸ, ü  Դ ſ ū ǹ̸ Դϴ. 3.2.1. ̸ ? ------------------- ڴ  Ӵϸ ٺ "̸ ?" ϰ ô  ƾϴ. "ȫ", ̴ ͵ ٸ Դϴ. ̸ ٲ , "ȫ"̶ ϴ ̸ ǹ̸ ٲ ϴ. ֳϸ "ȫ" ٷ " ڽ"̱ Դϴ. ̸ ׸ŭ ߿ Դϴ. ׷ ̷ Ե "ȫ"̶ ̸ ִ ƴմϴ. Ӵ "" θʴϴ. б ""̶ Ҹ ϴ. ٺ "" Ҹ ˴ϴ. ڱ , ̴ "" Ҹ ٸ ϱⰡ ƽϴ. :) ΰ? б "" մϴ. ׷ 翡 źδ ʸ "ȵ巹" θʴϴ. ʽÿ. "ȫ"̶ Ե "", "", "", " ", "ȵ巹" ̸ ֽϴ. "ȵ巹" ٰ ؼ "ȫ" ƴϰڽϱ? װ ƴϰ? ̷ ̸ , ٷ θ ؼ Դϴ. ̸ ϱ? װ ̸ Ű θ Դϴ. "ȫ!", "!", "ȵ巹ƾ!" θ ٷ θ ؼԴϴ. ׷ ڱ ̸ Ҹ ū Ѻ ˴ϴ. ƴ϶ ִ 繰 ̸ ֽϴ. ̴ 繰 ± Դϴ. 濡 ϴ ͵鵵 "" ̸ ֽϴ. 츮 θ 繰 ߿䵵 ö󰡸 ̸ ξ ü θ ˴ . ׳ "" ƴ϶ "ϱ"̶ θ Դϴ. Smalltalk Դϴ. Smalltalk ϳ Դϴ. 󿡴 Ƹ ü մϴ. ׸ Smalltalk ȯ濡 ִ (α׷) ̷ ü鿡  ø ü ̸ ҷ־ մϴ. Smalltalk ü ̸ οǾ ֽϴ. 3.2.2. ٷΰ ǥ ---------------------- Smalltalk ̴ ̸ ֽϴ. ϳ "ٷ "(literal)Դϴ. ٷΰ 츮 2.3.5 (#20) ٷ ִ üԴϴ. ׷ "ٷΰ ΰ?"ϰ ÿ ϰ ִ Ǹ ʾҽϴ. װ ٷΰ ü ̸ õǾֱ Դϴ. " ü ʴ ̸ ִٸ ü ٷΰ̴." ٲپ ϸ "̸ __ٷ__ ü Ī ִٸ ü ٷΰ̴." ֽϴ. ٷΰ ̸ ü Ű Դϴ. $a a Ÿ ̸. 'I''m' ($I, $', $m) ̷ ٿ ٴ ̸. #red $r, $e, $d ڷ ̷ ̸ 2000 " õ" Ÿ ̸ 1.2e2 Ҽ "1200.0" Ÿ ̸ true "" Ÿ ̸ false "" Ÿ ̸ nil ""(ƹ ǹ ) Ÿ ̸ #(1 2) 1 2 ִ 迭 Ÿ ̸. ٽ ٷΰ ü ̸ ʿ䰡 ٷ Ÿ ֽϴ. ̷ Ģ ڳ ڸ þ Ǹ ٷ Ÿ ̸ Ǵ Դϴ. , ̷ ٷΰ ̸ ____ ʽϴ. "3" "3" Դϴ. Smalltalk ̴ ̸  ° ٷ "ǥ"(variables)Դ . 츮  ǿ ̸ ̰ ǥ(, sticker) ̵, ü 츮 ̸ ְ ǥ ٿָ ˴ϴ. ٷΰ Ű ü ̸   ٲ , ǥ ü ٸϴ. ʿϸ ٸ ǥ ٿ ü ̸ ٸ θ ֽϴ. ٷΰ Ģ ֵ ǥ Ģ ֽϴ. "2.3.5." (#19) 츮 ̹ "̸"(symbol) ֽϴ. ٷ ̸ ǥ µ ˴ϴ. ̸  ؾ̽ϱ? ؼ ̸ ̴ ؼ ٽ 帮ڽϴ. ߿ ̴ϱ ϰ Ѿñ ٶϴ. << ̸ Ģ >> =========================================================== 1. ̸ ⺻ ĺ , ׸ (_) Ѵ. 2. ù ڰ ڿ ȴ. 3. ĺ 빮ڿ ҹڰ ϰ ȴ. 4. 㸶(binary) ÿ ؼ ȣ ִ. ! @ % * ( [ { } < > = | \ / ? + - : =========================================================== ǥ ٽ ū ǥ(global variables) ǥ(local variable) ϴ. ū ǥ ̸ 빮ڷ ϰ, ǥ ҹڷ մϴ. 츮 ū ǥ Խ . Ͼ ʴ´ٰ? ʽÿ. Integer superclass Number #red isKindOf: String true Transcript nextPutAll: '!'. (10 factorial) printOn: Transcript. "Integer", "String", "Transcript" ū ǥԴϴ. ڼ ǥ ̸ ù ڰ 빮ڷ ϰ ֽ . ̽ϱ? ׷ ǥԴϴ. ² ƿԴ Integer, String, Object ̰ Smalltalk ϴ (class) ᱹ ū ǥ پ ־ Դϴ. ǥ ٲ ִٰ տ ̾߱ ִµ, 翬 ̷ پ ִ ū ǥ ٸ ü ֽϴ. String "String " پ , ǥ ٰ "3"̳ $a ó ü ٿ ִٴ Դ ! Transcript Դϴ. Transcript Ϳ Transcript a TranscriptShell ߴµ, ᱹ Transcript ǥ "Integer " ٿ Ǵ Դϴ. ׷... ö ƴϰ, ׸ ̷ ǥ پ ִ ü Smalltalk 󸶳 ߿ ü ˰ ִ Ժη ̷ ǥ ǵ帮 ʽϴ. (п Źմϴ. ̷ ǥ ǵ帮 ʽÿ. Smalltalk  ĥ ϴ. ^^:) 3.2.3. ǥ ------------------ ⼭ ϴ ǥ ؼ ˾ƺ ϰڽϴ. ǥ ǥ ū ǥ ̰ ϴ. ׷ Smalltalk α׷ ۼϴ 쿡 ū ǥ ǥ ξ ϰ Դϴ. ǥ̰ ū ǥ̰, Smalltalk ǥ Ϸ "̷̷ ̸ ǥ ڳ" Smalltalk ˷ִ ʿѵ, ̸ "ǥ Ѵ" θϴ. ǥ ʹٸ ǥ Smalltalk ǥ ڴٰ ˷־ ٴ Դϴ. ǥ ϴ ǥ ū ǥ ٸϴ. 츮 ǥ ؼ ˾ƺ Ƿ, ⼭ ǥ  ϴ ˾ƺô. ǥ 丷 ó մϴ. | a b c | ٽ (vertical bar) ̿ ǥ ̸ ĭ ؼ þ⸸ ϸ ˴ϴ. a, b, c ǥ ڴٰ Smalltalk ˷ְ ֱ. ̻ ǥ ֽϴ. | apple anInteger temperatureToday anInternetAddressBook | ܾ ̷ ǥ ̻ ܾ ǥ ֽϴ. ٸ ο ܾ ù ڿ ݵ 빮ڸ ϵ սô. ǥ ù ڴ ҹ ̱ ù ° ܾ Ģ ʽϴ. anInternetAddressBook aninternetaddressbook̶ Ǹ  ƺ ְڽϱ? ׷Ƿ ŷӴ ܾ ܾ ϰ ְ ϱ ؼ ̸ ϰ ſ ߿մϴ. , ׸ Smalltalk ǥ ̸ ̿ ϴٸ, ġ ̸ ۼ ϱ , б⿡ Ƿ ª鼭 и ؾ Դϴ. ǥ ϴ ˾, ǥ ü ̴ ˾ƺô. ǥ ū ǥ Ȱ մϴ. ǥ̸ := . ϸ ":=" ʿ ִ Ͽ ü ǥ ̰ Ǵ Դϴ. ":=" ȣ " ǥ"(binder) θϴ. ":=" ʿ ִ ü ʿ ִ ǥ ̱ ̷ ̸ ٰ Ǿϴ. ̷ ؼ ü ǥ ް Ǹ ǥ ٷ ü ο ̸ Ǵ Դϴ. | a | a := 3. ̶ 丷 ִٸ, a θ "3" Ű Ǵ ϴ. ׷ ǥ ϴ ؼ ۵ 鼭 ˾ƺ սô. ϱ ˸ ֽʽÿ. < 1> ǥ ǥ ---------------------------------------------------------- | a | a := 3. a printOn: Transcript. [ ] 3 (˸ǿ) ---------------------------------------------------------- ˸ǿ "3" Ÿϴ. ֳϸ 3 a ٿ, "3" "a" ο ̸ θ ְ Դϴ. a printOn: Transcript. 3 printOn: Transcript. 丷 Ǵ Դϴ. a ϸ 3 Ű ˴ϴ. ֳϸ 3 a __پֱ__ Դϴ. ׷ ʽÿ. < 2> ϱ ---------------------------------------------------------- | a | a := 3 + 4. a printOn: Transcript. Transcript cr. [ ] 37 (˸ǿ) ---------------------------------------------------------- ˸ "37"̶ ڰ Դϴ. ⼭ "3" < 1> ̰, "7" < 2> Դϴ. ܺʽ . < 2> a := 3 + 4. ߽ϴ. ǥ(:=) ؼ , ǥ Ͽ := ǥ δٰ ߽ϴ. ǥ ϸ 翬 7 ̰, 丷 a := 7. ˴ϴ. ׷ a 7 پ ְ ˴ϴ. ᱹ a printOn: Transcript. 7 printOn: Transcript. Ȱ Ǵ Դϴ. ̰ ٷ ǥ ƯԴϴ. < 2> Transcript #cr ø Ȯϱ ϱ Դϴ. ϳ ǥ ٲپ ָ ʰڽϱ? ׷ ̹ ǥ ̿ؼ ǹ ִ ô. ִ ſ Դϴ. Ϸ翡 30 Ѵ 찡 ſ ϴ. ( 뱸ŵ.) ׷ 28 , 32ϴ. ׷ 󸶳 ɱ? װ Smalltalk ǥ ؼ ˾ƺ սô. < 3> ǥ ̿ؼ ϱ. ---------------------------------------------------------- | temperatureToday temperatureYesterday temperatureAverage | temperatureToday := 32. "" temperatureYesterday := 28. "" temperatureAverage := ((temperatureToday + temperatureYesterday) / 2). Transcript nextPutAll: ' '. temperatureYesterday printOn: Transcript. Transcript nextPutAll: '̸, '. temperatureToday printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. Transcript nextPutAll: 'ð '. temperatureAverage printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. [ ] 28̸, 32 Դϴ. ð 30 Դϴ. ---------------------------------------------------------- Ǿϴ. ׷  ʽϴ. 翡 ̸ , м ߿ ü ֽϴ. ׷ < 3> ù ʽÿ. | temperatureToday temperatureYesterday temperatureAverage | ǥ ڴٰ Smalltalk ˷ִ Դϴ. ǥ ̸ ƹ ᱹ ǥԴϴ. 츮 ۿ (temperatureToday), (temperatureYesterday), ׸ (temperatureAverage), ̷ ǥ ޾ҽϴ. ̷ ǥ ü ̸ ˴ϴ. temperatureToday := 32. "" temperatureYesterday := 28. "" "32" "28" ϰ ̸ üԴϴ. ׷ ⿡ ǹ οDZ մϴ. ٷ "32" " ", ׸ "28" " "̶ ǹ̰ οǰ ˴ϴ. 32 28 Smalltalk ϴ ü Ϻ, ü ǥ پ Ƿ ü ǹ̰ ִ Դϴ. ׷... ūǥ(" ")ȿ ִ ڴ ϱ? ʴϱ? Ǯ̱Դϴ. "2.3.3." ڿ ٷ (#16) 츮 Ǯ ̱ۿ ؼ ˾ƺ ֽϴ. ٽ ڸ, Smalltalk ūǥ ȿ ִ ϴ. ūǥ ȿ  ڸ ־ ٴ Դϴ. ׷ ۿ Ǯ̱ մϴ. < 3> 츮 ǥ ü ٸƴ " "(degree centigrade) Ÿϴ. µ ȭ(fahrenheit) ִٴ ƽ? ׷ ⼭ ׷ ȥ ؼ Ǯ̱۷ν Դϴ. ƹư μ "32" "28" ǹ̸ ˴ϴ. temperatureAverage := (temperatureToday + temperatureYesterday) / 2. µ ϴ κԴϴ. µ ؼ װ ٽ 2 Ǹ հ ϴ. ̷ ٽ temperatureAverage ǥ ̰ ˴ϴ. ܼ ø (parameter) Ƿ ޵ǰ Ҵٸ ƹ ǹ̸ Դϴ. ׷ ü temperatureAverage ǥ ٿ ν, ü ʰ ʿ θ ְ Դϴ. ̷ ǥ ϴ ü ٷ ٿ ǹ̸ ο , ü ٿξ ü(= ) ߿ ٽ ʿմϴ. µ, µ, µ , ̰ ˸ ǿ ѷֱ⸸ ϸ ˴ϴ. ̴ #nextPutAll: #printOn:ø ̿ ʰ ֽϴ. ٲپֱ ؼ #crõ ʿϰ? Transcript nextPutAll: ' '. temperatureYesterday printOn: Transcript. Transcript nextPutAll: '̸, '. temperatureToday printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. #nextPutAll: Ǵ ٸ ϴ. ǥ Ű ü #printOn: ð ߿մϴ. ռ 츮 temperatureToday temperatureYesterday 32 28 ٿ, װ ⿡ ״ ˸ǿ Դϴ. ٿ #cr ô ٲٱ ־ ̰, Transcript ̹Ƿ, յ (cascaded message) ߽ϴ. Transcript nextPutAll: 'ð '. temperatureAverage printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. 嵵 ϴ. #nextPutAll: ø ̿ 밡 ϰ, 꿡 ؼ ü temperatur Average ǥ ٿ ξ װ ״ ϱ⸸ ϸ ˴ϴ. ٲٱ ؼ ִٸ ÷ #cr Ƚϴ. < 3> Դϱ? оµ ذ ó ٽ оô. ⼭ ϰ Ǹ ȥ Ű Դϴ. ׷ θ õõ ǥ ǥ ؼ ϵ սô. տ ǥ ⿡ ٿ ִٰ . Ʒ 캾ô. < 4> ǥ Ű ٲ ---------------------------------------------------------- | temperature | temperature := 28. Transcript nextPutAll: ' '. temperature printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. temperature := 32. Transcript nextPutAll: ' '. temperature printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. ---------------------------------------------------------- temperature printOn: Transcript. Ȱ Ǿ, temperature ǥ  ü پ ִ ٸ ˸ǿ Ÿϴ. ̷  ü ǥ ٿƵ ٸ ü ǥ ̸ پ ִ ü ο ü ٰ ˴ϴ. ü  ʾƵ ü Smalltalk ˾Ƽ ݴϴ. ߿ ̷ ǥ ʿ信 ü ٿ ִٴ Դϴ. ׷ ࿡ ǥ ٰ ƹ ü ʾҴٸ  ɱ? ô. < 5> ƹ ͵ ǥ ---------------------------------------------------------- | temperature | Transcript nextPutAll: ' '. temperature printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. [ ] nilԴϴ. ---------------------------------------------------------- ֵ  ǥ ó ,  ü ǥ ⺻ (nil) ü پ ֽϴ. nil class UndefinedObject nil ôٽ UndefinedObject üε, "ƹ ͵ , 㹫, , ִ, ǹ "̶ ֽϴ. UndefinedObject ̸ ü "ǹ "̶ ̱ nil Ӽ Ÿ ֽϴ. ٽ ǥ ݵ ǥ  ü ؾ մϴ. ׷ ǥ nil ٿ ǰ, nil ˾Ƶ ø ϰ Ǹ Smalltalk â ǥϸ ߸ ϰ ˴ϴ. ô. < 6> ƹ ͵ ü ״ ϱ ---------------------------------------------------------- | temperature | (temperature + 3) printOn: Transcript. Transcript cr; [ ] "UndefindedObject does not understand #+" ߸ ߻ ---------------------------------------------------------- temperature ƹ ü ٿ ʾǷ nil پ Դϴ. ᱹ (temperature + 3) printOn: Transcript. (nil + 3) printOn: Transcript. ̰, UndefinedObject ü nil #+ ø ٰ ϴ ˴ . ׷Ƿ ǥ ü ٿ Ȯ ʿ䰡 ֽϴ. ... :[] Smalltalk #25 ڷ: [96] :ȫ (ȵ巡) 1999-07-21 18:08 ȸ:89 Smalltalk #25 1999. 7. 21. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.2.1. ̸ ? 3.2.2. ٷΰ ǥ b3.2.3. ǥ 3.2.4. ǥ ؼ ..... ======================================= 3. ü ä --------------------------- 3.2. ǥ λ ~~~~~~~~~~~~~~~~ 3.2.3. ǥ ------------------ #24... ǥ ⱸ ִٴ Դ . ǥ 丷 Ƶ , մϴ. ӿ ǥ ǰ ۿ ǥ ϰ , ǥ ˴ϴ. ٽ ϸ ǥ Ƶ Դϴ. ̷ ǥ þ "Ϸ ǥ" Ǵ " ǥ"(temporary variables) θϴ. ô. < 7> ---------------------------------------------------------- | color | color := #red. color. [ ] #red ---------------------------------------------------------- < 7> ̸ (display) , #red ϴ. ϱ color ǥ ̸ #red ٷ ǥ ̸ ָ 丷 翬 ̸ #red Դϴ. ׷ ¿ < 8> ---------------------------------------------------------- | color | color [ ] nil ---------------------------------------------------------- < 8> ϸ nil Ÿϴ. Smalltalk < 7> color ǥ и ̸ #red ٿ, < 8> color nil پ ֽϴ. ׷ϱ < 7> < 8> Ȱ color ̸ ǥ ־, ٸ ǥ Դϴ. ֳϸ < 8> DZ < 7> ̰, < 7> color ÿ Ҹ ȱ Դϴ. ǥ "Ϸ ǥ" " ǥ" ° Ǿ ذ ó? ǥ ̷ Ư , ǥ ַ ۿ Ͽ ü žΰ ߿ ʿ ˴ϴ. ȿ ǹ̸ ǥ̱ Ȳ Ű ʿ䰡 Դϴ. α׷ ۼϰ Ǹ ó ϴ ǥ Ȱ Ѻ Դϴ. 3.2.4. ǥ Ͽ ---------------------- ū ǥ ؼ ˾ƺ ǥ Ư¡ ¤ Ѿ սô. ǥ(:=) Ư Ư , ̷ Ư 츮 ˰ ־ ͵̶ մϴ. ǥ ũ ֽϴ. 1. ʿ ִ Ͽ ǥ δ. 2. ǥ ü ü Ѱش. "1" 쿡 ʰ Դϴ. ׷ "2" ذ Դϴ. "2" Ư ̿ 𸣰ڱ. ռ < 3> ǥ ° Ư ̿ Ʒ ϰڽϴ. < 9> ϱ (ǥ Ư ) ---------------------------------------------------------- | temperatureToday temperatureYesterday | Transcript nextPutAll: ' '. (temperatureToday := 32) printOn: Transcript. Transcript nextPutAll: '̸, '. (temperatureYesterday := 28) printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. Transcript nextPutAll: 'ð '. (temperatureToday + temperatureYesterday) / 2 printOn: Transcript. Transcript nextPutAll: ' Դϴ.'; cr. ---------------------------------------------------------- < 3>  ٸ ʽÿ. ϴ | temperatureToday temperatureYesterday | ǥ پϴ. ׸ ٸ ũ ٲ Ʒ ֽϴ. (temperatureToday := 32) printOn: Transcript. ִ ٷ ǥ ° Ư Դ . 丷 ƵǴ ~~? (temperatureToday := 32) printOn: Transcript. ~~~~~~~~~~~~~~~~~~~~~~~ 32 printOn: Transcript. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ᱹ temperatureToday 32 ٿ, 32 ǵ ˴ϴ. ħ 츮 ڶ(?) #printOn: ô ٷ ٿ 32 ü ޵Ǿ ˸ǿ "32" Ѹ Ǵ Դϴ. ̴ temperature Yesterday Դϴ. ̷ ǥ Ͽ  ü ǥ ̸ ǥ ü ٽ ǵ شٴ ſ ϰ © ֵ ݴϴ. ǥ ü ϴ ƴ ǥ Ӱ ÿ ̿Ͽ ϰ Ǹ ¥ ٷ ʰڽϱ? ̷ ؼ ۼ ϱ бⰡ ٴ ֽϴ. ǥ ü ̸ ü ״ شٴ Ư Ͽ 丷 ֽϴ. Ʒ 丷 ô. | sonAge fatherAge | fatherAge := 25 + sonAge := 10. "UndefinedObject does not understand #addToInteger:" ߻. 丷 ߸ ϴ. UndefinedObject ü #addToInteger: ø ٴ ε, ߸ Ͼ ? 鼭 ˾ƺ սô. fatherAge := 25 + sonAge := 10. ~~~~~~~~~~~ ⼭ ǥ Ƿ, ϴ ǥ ʿ ִ մϴ. ǥ ʿ ִ fatherAge ǥ ؼ Ű ʾƵ ˴ϴ. ٿ "25 + sonAge" Ƶ˴ϴ. ׷... sonAge  ü پֽϱ? 丷 Ǹ, sonAge 10 ٴ Դϴ. sonAge  ü ʾҽϴ. sonAge nil Ű Դϴ. , װ Դϴ. nil ٷ UndefinedObject üԴϴ. nil #addToInteger: ø ٴ Դϴ. 츮 nil #addToInteger: ø ʾ, #+ ð Ǹ鼭 Դϴ. ƹư nil , ᱹ sonAge ƹ  ¿ Ϸ Դϴ. ׷  ĥ ? , ٷ ȣ ϸ ˴ . 丷 ƵǴ ٲپָ ƹ ʴ ϴ. ̷ Դϴ. | sonAge fatherAge | fatherAge := 25 + (sonAge := 10). 35 ̷ ϸ sonAge ǥ 10 ٰ ǰ, 10 + 25 , ᱹ fatherAge 35 ٰ Ǵ Դϴ. ǥ ǥ ü ״ ȴٴ ̷ Ư  ְ մϴ. | a b | a := (b := 10). 10 b 10 ̰ Ǹ 翬 10 ǰ a 10 ٰ Ǵ Դϴ. b a Ȱ 10 پְ Ǵ Դϴ. ׷ 丷 Ʒó ֽϴ. | a b | a := b := 10. 10 Smalltalk 丷 ʿ Ƶȴٰ տ ߱ ֽϴ. ׷ ǥ ؼ ܰ ˴ϴ. ׷? װ ٷ ǥ Ư̱ Դϴ. ǥ := ____ ִ ؾ մϴ. a := b := 10. ù ° ǥ ϱ ؼ "b := 10" ؾ ϴ. "ǥ ʿ óѴ." Ģ Դϴ. Ͻʽÿ. ǥ ʿ ó˴ϴ. 丷 翬 ֽ . | a b c d e f g | a := b := c := d := e := f := g := 0. ̴ a, b, c, d, e, f, g ϰ ǥ ü "0" ̴ մϴ. ó ǥ ʿ ִ ͺ óմϴ. ׷ ǥ ؼ κ ̾߱ұ մ . ٷ ǥ Դϴ. 츮 ݱ 丷 ϸ鼭 "+" ϱ ̸鼭 ÿ ÿ Ǵ ǥ(selector) ˰ ֽ . 츮 丷 ٸ | smallInteger largeInteger | smallInteger := 1. largeInteger := 10000000000. smallInteger + largeInteger. 10000000001 "+ 10000000000"̶ ô ᱹ "1" ˴ϴ. "1" "+" " ؾ߰ڴ" ϰ, ڿ ڷ "10000000000" ϰ Ǵ Դϴ. ׷ "10000000001" ̱. ׷ ... | smallInteger largeInteger | smallInteger := 1. largeInteger := 10000000000. smallInteger := largeInteger. 丷 ִٰ ô. ⼭ ޶ ٿ "+" ־ ڸ ":=" ִٴ Դϴ. ׷ 丷 ":= largeInteger" ð "smallInteger" Ǵ ϱ ? ":= 10000000000" "1" ɱ? ܵ , ":=" ø Ÿ ǥϱ? ":=" ǥ ƴ ؼ ˾Ƴ ణ ʿմϴ. ࿡ ":=" ǥ, ü "1" ":= 10000000000" ÷ν ȴٸ, smallInteger ǥ ƾ մϴ. ׷ и ":=" ʿ ִ smallInteger ǥ ٲ ϴ. ":= 10000000000"̶ ô "1" ϴ. ֳϸ ǥ ߿ϰ smallInteger پִ ü "1" ƴ϶ "smallInteger" ü̱ Դϴ. ":=" и "+"ʹ ٸ մϴ.  ö ø ü ü __׸__ ٸ ü ٲĥ ϴ. ̴ ϱػ! ϳ, ":=" "+" ǥ,  ü ":="̶ ־ մϴ. ׷. ":=" ʿ ݵ ǥ ; ϴ. ":=" ǥ ƴմϴ. ":= ǥ ƴ϶ Ư ϴ ̴." ":=" ö ":=" ʿ  ü ͵ ϴ. ׷ ":=" ʿ ǥ ; մϴ. ------------------------------------------------------------- Dolphin Smalltalk ":=" Smalltalk ǥ 캸 翬 ؾ մ . ׷ Dolphin Smalltalk ̻ϰ մϴ. 3 := 4. ϸ ϰԵ "SmallInteger does not understand #:=" ߸ ߻մϴ. ̴ մϱ? 丷 Dolphin Smalltalk ":=" ǥ ؼߴٴ ̾߱ ϴ. ̸ ":=" ǥ Ÿ Ǫ ٲ ֽϴ. ׸ false := 3. 3 丷 ƹ ̻ Ƶǰ, "3"̶ Խϴ. ! ̷ ! ׷ ̻ false false Դϴ. ̴ Dolphin Smalltalk Object Arts翡 ȥ ״, ƴϸ ۿ ϴ. µ ū ٰ , ⺻ . α׷ ۼϴµ ʽϴ. ƹư ":=" ǥ ϴ. ٸ ü ǥ ̱ ִ ǥ ͸ νñ ٶϴ. ---------------------------------------------------------- ... :[] Smalltalk #26 ڷ: [97] :ȫ (ȵ巡) 1999-07-21 18:08 ȸ:106 Smalltalk #26 1999. 7. 21. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.2.1. ̸ ? 3.2.2. ٷΰ ǥ 3.2.3. ǥ 3.2.4. ǥ ؼ c3.2.5. ū ǥ ..... ======================================= 3. ü ä --------------------------- 3.2. ǥ λ ~~~~~~~~~~~~~~~~ #25... 3.2.5. ū ǥ ---------------- ū ǥ(global variable) ǥ ̸ ù ڰ 빮 ǥ մϴ. ǥ ǥʹ ٸ Ư¡ ֽϴ. ǥ ϰ Ҹ Ͱ ޸ ū ǥ ڰ ǥ ֱ ֽϴ. Smalltalk ϳ, ڿ ٽ Smalltalk ȯ濡 ͵ ֽϴ. ? ǥ 츮 ǥ ־ ߽ϴ. ū ǥ Դϴ. ū ǥ " ̷̷ ū ǥ ̴" Smalltalk ˷־ մϴ. ׷  ϸ ū ǥ ? ʽÿ.. Smalltalk at: #MyName put: 'ȫ'. 'ȫ' ⼭ 츮 Smalltalk ϴ ο ü ϰ ˴ϴ. ü #at:put ø ū ǥ ϰ ˴ϴ. ǥ 쿡 , ū ǥ 쿡 Բ ǥ  ü ؾ մϴ. 丷 "MyName"̶ ο ū ǥ ߰, ⿡ 'ȫ'̶ ־ϴ. Ϳ MyName 'ȫ' 丷 캸 'ȫ'̶ ֽϴ. ū ǥ MyName پ ִ 'ȫ'̶ ü ״ Ǵ Դ . #at:put: "at:" 踻 ū ǥ ̸ ־ , "put:" 踻 ǥ ü ǥ ݴϴ. , "at:"  ū ǥ ̸ տ ݵ 칰 (#) ǥ پ Ѵٴ Դϴ. ̰ ռ ߵ Smalltalk ǥ ̸ ̸ Ѵٴ Ͱ ġմϴ. Smalltalk at: MyName put: 'ȫ'. ̶ ϰ Ǹ "MyName̶ ǥ Ű ִ ü ̸ ϴ ο ǥ" ٴ ˴ϴ. ׷Ƿ ο ū ǥ ݵ ̸ ־ սô. MyName ǥ̱ ٸ ü ٲ ֽϴ. MyName := 'ȫ浿'. 'ȫ浿' ϸ MyName ǥ 'ȫ浿'̶ ٿ ٰ ˴ϴ. ̰ ǥ ū ǥ ٸ ٰ Դϴ. տ ū ǥ Smalltalk ʴ´ٰ ߽ϴ. ׷ ô. Smalltalk ʽÿ. File > Exit Dolphin ޴ Ͽ Smalltalk ô. !! Smalltalk " ¸ ϰ "  ""(Yes) ؾ մϴ. ׷ ū ǥ ϰ ˴ϴ. ٽ Dolphin Smalltalk ô. ׸ Ϳ MyName 'ȫ浿' 丷 Smalltalk ٿ ξ 'ȫ浿'̶ ü ״ ǥõ ֽϴ. MyName ۷ ִ Դϴ. ̷ Smalltalk ִ ū ǥ ٸ ƴ Smalltalk (image) ״ ˴ϴ. 츮 Transcript, SmallInteger, Smalltalk ū ǥ ִ ͵, ٷ ̷ ū ǥ ⿡ پ ִ ü Smalltalk (image) ״ DZ ϴ. ׷ Smalltalk ū ǥٴ ǥ ϴ. κ Smalltalk ū ǥ 1⿡ ȴٰ ϴ 쵵 ֽϴ. ׸ŭ Smalltalk ū ǥ ʽϴ. ֳϸ ū ǥ Դϴ. δµ ռ ߵ ǥ ξ մϴ. ׸ ū ǥ ϰ ū ǥ ƴ " ǥ"(class variable) մϴ. ̰ Ǿ ֱ ū ǥ մϴ. ƹư ū ǥ ǵ  ʴ ٶմϴ. ū ǥ ̷ ָ ڰ ʽϴ. ׷ ̷ ū ǥ  ? ʽ . Smalltalk ü #removeKey: ø ָ ˴ϴ. Smalltalk removeKey: #MyName. 'ȫ' #removeKey: ô MyName̶ ū ǥ ְ ǥ پ ִ ü ϴ. ǥ ǥ پ ִ ü ״ ݴϴ. 翬 , ̷ ū ǥ ˴ϴ. MyName "Error: Undeclared MyName" ߻ ǥ ϰ ȴٸ 翬 " ǥ" Smalltalk Ÿ Դϴ. ׷ ƹ ū ǥ ϴ ʹ ٰ ʽϱ? Smalltalk ü #at:put: ø ٴ ͵ . ׷ Smalltalk ū ǥ ִ ٸ غ ֽϴ. , ̹ տ MyName̶ ū ǥ ϴ. ( ʾҴٸ ִ 丷 ؼ ֽʽÿ.) ¿ Ʒ 丷 Է ô. MyName := 'ȫ'. ׷ <׸ 3-6>ó MyName ū ǥ Ѵ ȭ ڰ ǥõ˴ϴ. <׸ 3-6> ū Ḧ  (Stp3-6.gif) MyName̶ ǥ  ü ̷ ϴµ, Smalltalk شϴ ǥ , ڿ ǥ  ֽϴ. ⼭ ""(Yes) ϸ MyName̶ ǥ ⿡ ' ȫ' ̰ ǰ, "ƴϿ"(Mo) ""(Cancel) ϸ MyName ʴ ǥ Ǿ "Error: Undeclared MyName"̶ ߸ Ű ˴ϴ. ÿ 丷 , ߸ ų ִ Դϴ. ׷ٸ ū ǥ Ȯ ġ ? װ ռ ߵ, ū ǥ Ƿ Ǿ ְ, α׷Ӱ ǥ 鵵 ߴµ Ǽ ǥ ̸ ù ڸ 빮ڷ Դϴ. ƹư Smalltalk ü #at:put: ø ̿ؼ ǥ ϴ ̰, װ ϰ ϱ ؼ ǥ ٷ ִ ִٴ ˾Ƶθ ڽϴ. ׷ 츮 ū ǥ Smalltalk ü ô. ü ü ̱⿡ 츮 ū ǥ ü ø ? ؼ Smalltalk ü  ˾ƺô. Smalltalk a SystemDictionary(#MourningWeakArray -> MourningWeakArray #STBFiler -> STBFiler ... Ϸ) Smalltalk ü SystemDictionary üԴϴ. SystemDictionary Smalltalk (collection) ν, (Dictionary) ϰ ֽϴ. ø(ǥ, keyword) ø ִ (value) ִµ, SystemDictionary ̷ մ . ƹư ߿ ϰ Dictionary ؼ Բ ˾ƺ ε, ƹư ν Smalltalk ͸  ִ ˱Ⱑ ƽϴ. ƹ ü Ž⸦ ؾ ϴ. <׸ 3-7> Smalltalk ü Žϴ (Stp3-7.gif) Ž 캾ô. ͵ ʽ ϱ? Array ؼ ArrayedCollection, Boolean, Dictionary,... ? False, Float, Integer, Magitude, Number? MyName ̴±. 츮 ξ ū ǥε... SmalltInteger ֱ. ׸ Smalltalk? ~ Transcript ֽϴ. Smalltalk ü ü ˾ҽϱ? ٷ ü Smalltalk ϴ ū ǥ Ƶΰ ϴ Դϴ. Smalltalk ü ̰ ٸ ߿ ϵ , ƹư ü Ž⸦ Ͽ 캻 츮 ϴ ǥ ⿡  ְ Ǵ Դϴ. 츮 Smalltalk ü #at:put ̿ؼ ο ׸ ָ ׸ ū ǥ Ǵ ̰, #removeKey: Ͽ  ׸ Ǹ ū ǥ Դϴ. ű ʽϱ? , ׷ ִ ô. ϴ ϱ "File > Save Image" ؼ ¸ ޾ νʽÿ. ũ ȸ.... غ Ǿ 丷 ô. Processor := nil. Processor ū ǥε, Smalltalk óϴ ߿ ü ǥ پ ֽϴ. Processor ǻ CPU͵ ǥε... ǥ ϰ nil ٿ Smalltalk ٿ Ǿ ϴ. ϰ Դϴ... ó Smalltalk ̹ ϰ ִ ū ǥ ٸ ü ̴ ſ մϴ. ׷Ƿ ū ǥ ǰ ʿմϴ. ------------------------------------------------------------- ؾ Ǵ! ǥ? ȵ! α׷  ̶ غ е 鼭 Ƹ ϼ 𸥴ٰ ϴ մϴ. ٷ "ǥ" Դϴ. Smalltalk variables̶ θϴ. ϸ ̴ "" ½ϴ. ׷ ٸ α׷  "" Smalltalk "variable" ʹʹ ٸ 帣 ֽϴ. ٸ "" ""̶ մϴ. ׷ " a 3 ִ´" մϴ. ׷ Smalltalk variable ƴմϴ. Smalltalk variable ö ٸ ü Ű ֽϴ. ̷ ޶ ٷ " ǹ" "Ŵ ǹ" Դϴ. " ǹ"(value semantic)  Ե "" ü ̵ϴ ϴ. a := 3; ̶ Ǹ 3̶ ϴ a ȿ  ִٴ Դϴ. ̰ ᱹ ü ̵Ѵٴ ְ ֽϴ. "Ŵ ǹ"(reference semantic) ݸ鿡  Ե شϴ ü ̴ ƴ϶ ٸ Ű ٴ ǹ̸ ϰ ֽϴ. a := 3. ̶ ̴ "a 3 Ų" ˴ϴ. ٲ ϸ "a 3̶ پ ִ" ǥ ֽϴ. "3"̶ ϴ ̵ϴ ƴ϶ Դϴ. Smalltalk variable ̷ "Ŵ ǹ" ֽϴ. ׷ variable "" ƴ϶ "ǥ" θ Դϴ. 츮 ĥ ǹ̿ ͼ ֽϴ. ׷ ó ǹ̰ ƴ Ŵ ǹ̸ ϱ ؼ "ǥ" ߽ϴ. ǥ  ü ٿ ǥ ü Ű ϴ ǹ̸ Ÿ Դϴ. ǹ̿ Ŵ ǹ̸ ľ Ͻ ִ , 丷 캾ô. | a b | a := #(1 2 3). b := a. b at: 1 put: 1000. a. 丷 ڽϱ? ٷ #(1000 2 3) ̶ ɴϴ. и 丷 a ϵǾ ֽϴ. Ƿ ǥ a #(1000 2 3) پִٴ Դϴ. a := #(1 2 3). 쿡 a ǥ #(1 2 3)̶ 迭 Դϴ. b := a. ϴ. ⼭ Ե˴ϴ. ǹ̷ ؼѴٸ b a ٸ ü մϴ. a ״ b Դϴ. ٽ ϸ a ״ b Ǵ Դϴ. Smalltalk ǥ ö Ŵ ǹ̸ ŵϴ. b a Ű ü ŵϴ. ⼭ b ؼ ο ü ʽϴ. ̰ ٷ 巯ϴ. b at: 1 put: 1000. b #(1 2 3) ִ 迭̰, ⿡ #at:put: ø ٲ ֽϴ. ׷ ǹ̿ٸ, a b ٸ ü̹Ƿ b ƹ ٲپ a ƹ մ . ׷ a. #(1000 2 3)̶ ҽϴ. b ٲپµ a ٲ ̴̰ϴ. ٷ ̰ Ŵ ǹ Ư Ÿ ִ Դϴ. b := a. "a ǥ پ ִ ü b ǥ δ" ؼϸ ϱⰡ ϴ. ϳ ü a ǥ ̰, b ǥ Դϴ. ᱹ θ ̸ ٸ a θ b θ ᱹ Ȱ #(1 2 3) θ Ǵ ̰ b پִ ü  ø ٴ ᱹ a پ ִ ü ø ٴ Ͱ ٸ Դϴ. ׷ a ٲ Ǵ Դϴ. ׷ ٸ 鿡 ǹ̿ Ŵ ǹ̸  ϰ ִ ˾ƺô. <̽> ̽ 쿡  ǹ̰ ˴ϴ. Visual Basic 쿡 Լ ڿ ڸ Ư ð ̻ Ŵ ǹ̰ , ByVal ̿ ؼ ǹ̶ ֽϴ. ׷ Basic Ģ Ͱ Ŵ ǹ̸ ϴ. C ǹ̷θ ޵˴ϴ. ׷, ڰ ڿ Ե ǹ̰ ο˴ϴ. ׷ ͸ ؼ Ŵ ǹ̸ ֽϴ. C Ͱ ׷ ߿ ġ ϰ Ǿ° ϸ, ٷ Ŵ ̸ ϱ ؼ Դϴ. α׷ֿ ǹ̺ٴ Ŵ ǹ̰ ȿ̰ ˴ϴ. C 迭 Լ ͷν ޵˴ϴ. ׷Ƿ C 迭 Ŵ ǹ̰ ȴ ϰڽϴ. ׷ ̴ ǹ̹ۿ ο  Ŵ ǹ̸ ϱ ϳ Ұմ . C Ŵ ǹ̸ ʾұ ߻ϴ ذϱ ؼ C++ ''(reference) ϴ. ڸ ̿ϸ μ Ŵ ǹ̸ ο ֽϴ. Լ ڸ ڿ ϳ ڸ Ͽ ٸ ̸ ο ϴ. ǥ ִ Դϴ. ׷ C++ ڴ ſ ̰, α׷ ߿ Ӱ ٲ ϴ. ǥ ٸ 󹰿 ǥ ٲپ ϴ. ̷ ڰ ִٰ class ü Ϳ ؼ Ŵ ǹ̸ ۿ , ڰ ̰ Ȱ ̴ ̶  ǹ̰, ٸ 쿡 Ŵ ǹ̰ οǾ ſ ȥ ϴ. ⿡ "="̶ ϴ ൿ ٲ ֱ , ǹ̿ Ŵ ǹ̰ Ǵ Ģ ˴ϴ. ׾߸ ⸧ ̳ Դϴ. ظϸ C++ 鵵 ⸦ մϴ. δ ֱ ͸ ؼ ϰ Ŵ ǹ̸ ǥ ϰ ְ 򰥸 Դ . C++ ܰ ⿡ ֽ ϴ. ĽĮ ǹ̰ οǰ, ڿ ڰ ޵ ǹ̰ ο˴ϴ. ٸ ڸ "var"̶  ؼ ǹ̸ ų ֽϴ. ׷ ſ Դϴ. ü ĽĮ ̷ ĽĮ Ӽ ״ ޽ . ⿡ ü ٷ ǹ̰ ƴ Ŵ ǹ̰ ˴ϴ. Թ̶ a := 3; 쿡 ǹ̰ ǰ a := TButton.Create(Self); b := a; ü ٷ Ŵ ǹ̰ ˴ϴ. ڴ ü ٷ ִ ׷ ľؼ ǹ̰ Ǵ ƴϸ Ŵ ǹ̰ Ǵ Ȯϰ հ ־ մϴ. Delphi 2.0 ' ڿ'(long string) Delphi 4.0 迭(dynamic array) Ŵ ǹ̸ ֽϴ. ̰ Ȯ ĽĮ ֵ ü ĽĮ " ü", ̷ ʽϱ? Java 쵵 ü ĽĮ ٸ ʽϴ. Java ڷ ũ η µ ϳ ""(primitive type)̶ ϰ, ٸ ϳ "ü"(object type)̶ մϴ. ö ǹ̰ ǰ ü 쿡 Ŵ ǹ̰ ˴ϴ. Լ ڸ ǹ̰ ǰ, ü 쿡 ܾ Ŵ ǹ̰ ο˴ϴ. ü ĽĮó 쿡 Ŵ ǹ̷ ڸ ϴ. 츮 ϰ ִ Smalltalk 캾ô. Smalltalk Թ Ŵ ǹ̸ ֽϴ. "3", "4" 쵵 Ȱ ǹ̰ ο˴ϴ. (method: ٸ  Լ ) ڸ Ŵ ǹ̸ մϴ. ǹ̸ ϴ ϴ. Smalltalk Cʹ ݴ ǹ̸ ϱ ø ֽϴ. ̸׸ 丷 ݸ ļ | a b | a := #(1 2 3). b := a copy. "ü 纻 " b at: 1 put: 1000. a. ̿ ٲٰ Ǹ a b ʴ ٸ ˴ϴ. b پ ִ a پִ ü ƴ b 纻Դϴ.  ü #copy ø ش ü Ȱ ü ϳ , ø ü 纻 ϴ. b ƹ ǵ a ĥ Դϴ. ǹ̸ Դϴ. Smalltalk ϰ ö ֽϴ. Ȳ ̷ ٲ ٲ ƴ϶ ϰ öа ϵ , ˴ϴ. Smalltalk Ŵ ǹ̸ մϴ. ̴ Ź ̶ ֽϴ. ǹ̴ ̸ ٰ ٰ , Ŵ ̿ ü ְ ⿡ ǥ ٵ پ մϴ. ϳ Ȳ Ƶ ü ߽ (Object Oriented) ϴ ü ö  ʽϱ? , ڰ "variable" "" ʰ "ǥ" ߴ Ͻ ֽϱ? ۿ "ǥ" ϰڽϴ. ̰ ڿϴ. ǹ̿ Ŵ ǹ, ȥǴ ̱ Smalltalk "ǥ" 縦 ϱ ؼ ʿ Ҷ Ͻʽ . ׸  ϰ ִ Smalltalk ״ ʽÿ. ȥ ʷ Դϴ. Smalltalk ο 信 ٶ󺸴 ⸣ʽÿ. ׷ ֽϴ. ƹ͵ 𸣴 ʵл Smalltalk ȯ濡 ︮ ùķ͸ ٴ Ͻʽÿ. 츮 ľƸŴ ˴ϴ. ---------------------------------------------------------- =========================================================== ݱ 츮 Smalltalk ſ ߿ "ǥ" ؼ ˾ ҽϴ. ǥ ϴ ü ߿ ʿ ٿ ü ǹ̸ ϰ, ü鿡 ٿ ΰ ߿ ֵ ϸ, ֵ ݴϴ. ƹư ̷ ǥ ǥ ū ǥ ǰ, ӿ ϰ Ȱؾ մϴ. Smalltalk ߿ 90% Ͱ ٸ ϴ. ǥ ū ϰ Դϴ. ݱ ڵ鸸 ʹ ׷ Ҹ ٷ սô. ǥ ˾, ϸ ü ǥ ٿ ñ ٶϴ. ׸ !  ߻ 𸣴 ̹Ƿ, Smalltalk (image) δ ʵ սô. ... :[] Objective-C ڷ: [103] :ȫ (ȵ巡) 1999-08-03 10:50 ȸ:239 , Objective-C ü  ִ ϴ. ϰ ˰ִ ص帰ٸ... 켱 Objective-C Cٰ Smalltalk ijҴٰ ϴ. C++ OOP ǥϱ ؼ C Ȯ , Objective-C C ״ ϸ鼭 OOP ǥ Smalltalk ٰ ˴ϴ. ̸¸ if ( [anObject isKindOf: Integer] ) return -1; ̷ ڵ尡 ȴٰ ˰ ֽϴ. C ڵ ϴٰ OOP ؾ 쿡 ȣ[ ] ȿ ִ Դϴ. Smalltalk ȣ ȿ ɹ ־ (block) Ͱ ٰ ˴ϴ. ׷ Objective-C з ȭ , ⸧ ̰, ڵ C ö а OOP ö Բ ־ ϹǷ ſ ٴ ֽϴ. ̰Ÿ ̰, Ÿ Ű ƴ϶ ź, ź ϴ ̶ . C++ Ī , ׷ C++ C ȿ OOP ǥغ õ . ׷ Objective-C װ ׷ ʾϱ. ڸ, ȣ ȿ Smalltalkó ڷ ( ڷ ), ȣ ۿ Có ڷ ϴ. ƹư C++ ¸ Ȳ  Objective-C մϴ. :[] Objective-C ڵ ڷ: [104] :ȫ (ȵ巡) 1999-08-03 15:52 ȸ:187 Objective-C ҽڵϴ. ش غ, Ǽ ڽϴ. http://www.cis.ohio-state.edu/hypertext/faq/usenet/Objective-C/sample/faq.html Դϴ. // This is a comment, just like the previous line. Everything to the right // of a double slash is ignored. /* Classes are the one real extension which Objective-C adds to C. A class is a description of a collection of data, like a C structure, and the methods by which that data may be accessed or manipulated. Instances of a class are called objects, and methods are invoked by sending messages to either the class itself, to produce objects, or to those objects. The recipient of a message is called a "receiver". The form of a message is: [receiver method andMaybeSomeArguments] the receiver and method components are mandatory, as are the square brackets surrounding the message. Additional arguments may or may not be present, depending upon the method definition. Messages may appear anywhere a statement is allowed in C. The first thing we do is bring in some include files, as in C. On the NeXT, it is customary to use the "import" statement which guarantees that the file isn't included more than once. Using GNU CC this is not all that nice sinds it generates a huge warning for every file being compiled. So, since it does not really matter, we'll stick to `#include'. */ #import #import #import "Queue.h" #import "Stack.h" /* That brought in class definitions for Objects, Queues, and Stacks. The Object class is the basis for all other classes, which is why it gets brought in first. It provides basic functional behavior which is inherited by all derived classes. All user created classes normally have Object somewhere in their ancestry. Queue and Stack are classes of our own construction, and provide FIFO and LIFO storage capabilities, respectively. I'm not going to go into implementation details here. It's irrelevant how they work, all that is important is that they both respond to 'put:' and 'get'. If you want to inspect them, look into the Queue.m, Stack.m, Queue.h and Stack.h files. A simple Class definition follows. It inherits directly from the base class "Object". This gives it lots of nice properties, not the least of which is the ability to be referenced by any pointer of the generic object type "id". All objects can be pointed to by any id variable, and the default return type from methods is id. This allows messages to be embedded in other messages, either as receivers or arguments. An Int object allocates space for a single integer. The "report" message causes it to report its value. Everything between the @implementation and the @end is part of the class definition. Note - It is *highly* unusual to have a class implementation in your main program. Since the object is fully defined before it gets used, no interface description is required. There is nothing illegal about doing things this way, but it is so unusual that the compiler will produce a warning for this class. The Int class implementation is here solely for expository purposes. */ @implementation Int: Object // Int is derived from Object { int value; // This is the data portion. Like a struct. } /* The following are the method definitions. A `+' prefix means it is a factory method, i.e., how to manufacture instances of the class. The body of the method is between braces, like a C function. This class doesn't define any factory methods. It relies on the +alloc method defined in class Object. For examples of factory methods, look at the +new method defined in the Stack or Queue implementations. Self is a special variable, which refers to the object currently being manipulated. Super refers to the parent class of self. The following method asks the parent class (Object) to hand us a new instance, which becomes self. Then we update the instance variables and return a pointer to the new object. It is standard for methods that do not need to return any special value to instead return self. This allows for a nested syntax of method calls. The "-" in front of init means that it's an instance method, i.e., something a particular object should respond to. */ -init: (int) i { /* Have our superclass initialize its part of us. After that, initialize the part of us introduced by this class (Int). */ [super init]; value = i; return self; } -report { printf ("%4d", value); return self; } @end /* We have implemented Float and Char classes more traditionally, using separate files for the interface (.h) and implementation (.m). The Float and Char objects are like the Int object, but with the obvious difference that they work with floats and characters. We include the interface definitions at this point. */ #import "Float.h" #import "Char.h" /* If you inspect those files, note polymorphism -- methods have same names as in the Int class. */ int main (void) { /* First create instances of "Stack" and "Queue" data structures. */ id queue = [[Queue alloc] init]; id stack = [[Stack alloc] init]; int i, reply; fprintf (stderr, "Include the Char class in the demo? (y/n): "); /* Anything not matching `y.*' means no. */ reply = getchar (); for (i = 5; i > -6; --i) { /* Depending on which version of the demo we're running, we alternately put Ints and Floats onto the queue and stack, or Ints, Floats, and Chars. */ if (reply == 'y') { /* If I is odd we put an Int on the queue and a Char on the stack. If I is even we put an Char on the queue and a Float on the stack. Since there is more than one method `-init:' and since `+alloc' returns a plain, typeless, `id', the compiler doesn't know the type of the object returned by alloc. An explicit cast (i.e. static type indication) ensures that the compiler knows which `init:' is invoked---the one accepting a char or the other one accepting an int. Another solution, which avoids the static type indication, is to put typing information on the method in the method's name. This is done for the Float class. */ id my_char = [(Char *) [Char alloc] init: 'm' + i]; if (i & 1) { [queue put: [(Int *) [Int alloc] init: i]]; [stack put: my_char]; } else { [queue put: my_char]; [stack put: [[Float alloc] initFloatValue: i]]; } } else { /* If I is odd we put an Int on the queue and a Float on the stack. If I is even we put a Float on the queue and an Int on the stack. */ [queue put: ((i & 1) ? [(Int *) [Int alloc] init: i] : [[Float alloc] initFloatValue: i])]; [stack put: ((i & 1) ? [[Float alloc] initFloatValue: i] : [(Int*) [Int alloc] init: i])]; } } while ([queue size] && [stack size]) { /* The following illustrates run-time binding. Will report be invoked for a Float object or an Int object? Did the user elect for Char objects at run time? We don't know ahead of time, but with run-time binding and polymorphism it works properly. The burden is on the class implementer rather than the class user. Note that the following lines remain unchanged, whether we are using the Char class or not. The queue and stack hand us the next object, it reports itself regardless of its type, and then it frees itself. */ printf ("queue:"); [[[queue get] report] free]; printf (", stack:"); [[[stack get] report] free]; putchar('\n'); } return 0; } __EOF__ :[˸] Dolphin Smalltalk ׷̵ ڷ: [106] :ȫ (ȵ巡) 1999-08-16 22:03 ȸ:137 ȳϼ? ȫ ȵ巹Դϴ. Object Arts簡 Dolphin Smalltalk 3.0 ǥ߽ϴ. ̹ ǥ 3.0 ȯ Ȯؼ ϱ Smalltalk Ǿٰ մϴ. ׷ ⼭ ݰ , ² ǸŵǴ Dolphin Smalltalk 2.1 ȯǾٴ Դϴ. 3.0 ǥǸ鼭 2.1 Ǿٴ Դϴ. ׷ е鲲 Dolphin Smalltalk 2.1 ٿεϽö մϴ. 1.1 ؼ ְ, Smalltalk ǥؾȿ ǰ ϰ ִ ' ǥ'(block temporary variable) մϴ. ׷ ξ α׷ϱⰡ ϴ. 1.1 ô е鲾 2.1 ñ ٶϴ. 2.1 ׿ ؼ Ŀ Խǿ ÷帮 ϰڽϤ3. ׷ , ȳ ʽÿ. :[] Smalltalk #27 ڷ: [107] :ȫ (ȵ巡) 1999-08-26 15:18 ȸ:125 Smalltalk #27 1999. 8. 26. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  a3.3.1. ǥ 3.3.2. ٷ̿ ؼ ..... ======================================= 3. ü ä --------------------------- 3.3.  ~~~~~~~~~~~~~~~~ ٷ 츮 ü ǥ(variable) ̰ װ ü ̸ θ ˾ƺҽϴ. ǥ ϰ Ǹ ü  װ ʾƵ ȴٴ Դϴ. ݱ 츮 Smalltalk "" Խϴ. ٰų δ , ׷ θ Ѵٴ Դϴ. ڵ ϼϱ ؼ ʿմϴ. ڵ ڳ ڸ ׷ ͺٴ ִ ׸ ;ϴ. ƺô. "̴ ٷ н̴" ƴϴϱ. 츮 ַ 忡 ϴ. , δ볢 ̸ ϰ ƹư ̶ ҿ ϴ. 츮 ̴ ̴ ƴ   Դϴ. ִµ ٸ ظ ƴ ״ϱ. ׷ Smalltalk ...? - ϸ " Ҹ ?" ֽð, ƹư- , ׷ϴ. "ü"(object)Դ . 츮 ƾ  Smalltalk ϳ üԴ . 츮 Smalltalk  ⿡ ׶, , ׸ ׸ ÷ ̰͵ Դϴ. ̷ ׸ ̵̳ ƴϳĴ е Ȥ 𸣰ڴµ,  Smalltalk Դϴ. Ҹ ֽϱ? :) ƹư ̹  ⿡ ÷ ƺ Դϴ. ǥ ٷ̿ ؼ ˾ƺ . 츮 ̶ 𿡼  ; , ϴ ǥ ٷ̿ ؼ ˰ ʹ ְ Դϴ. 3.3.1. ǥ ------------------ ǥ(variables) ũ "ū ǥ"(global variable) " ǥ"(local variable) ִٰ 帰 ֽϴ. ׷ ū ǥ ǥ Ǵٽ Ư ϴ. ߿ " ǥ"(workspace variable) ؼ ˾ƺ ϴ. 켱 ǥ  ϰ ϴ ˾ƺô. ǥ ǥ ̹Ƿ 翬 ǥ ؾ մϴ. ǥ ϴ մϴ. 켱 "File > New" ؼ ͸ ϳ ô. а ̷ Ϳ ۾ϵ սô. Ϳ Ʒ 丷 ʽÿ. ǥ ǥ Ƿ, ǥ ̸ ù ڴ ݵ ҹ̾ սô. a := 3. 3 츮 "a" ǥ ʾҽϴ. "3" "a" ǥ ٿ⸸ ߽ϴ. "a" ǥٸ и ߸ ־ մϴ. ׷ ̷ ؼ "a" ǥ Դϴ. ǥ "a"  ü پ? a 3 a и 3 پ ֽϴ. a ǥٸ 丷 Ǿҽϴ. ׷ a ϰ ְ, 3̶ ü پֽϴ. ̴ 츮 a ǥ ƴ ǥ ߱ Դϴ. ̷ ǥ Ϸ, ׳ ϰ ǥ ü ֱ⸸ ϸ ˴ϴ. ū ǥ Smalltalkü #at:put: ø ʿ MyName := 'ȫ'. ̶ ص ڵ ū ǥ ʽÿ. ū ǥ Ȯ ġ, ǥ Ȯ ϰ ٷ ǥ ϴ. ƹư ̷ ؼ ǥ ڰ ǥ ֱ ״ ֽϴ. ׷ ǥ ٸ Ϳ 縦 ϴ. ǥ Ϳ ǹ̰ ִٴ Դϴ. "File > New" ̿ؼ ͸ Ʒ 丷 ʽÿ. a "Undeclared a" ߸ ߻ Ϳ "a" ǥ ʾұ ߸ Ͼ Դϴ. ó ǥ ǥ ȿ ǹ̰ ֽϴ. Ȯߴٸ ٷ ʹ ô ׷ ̷ ǥ ֽϴ. ٷ ˸ε, ˸ Ʒ 丷 ʽÿ. a := 3. "Undeclared a" ߸ ߻ ˸ǿ ǥ ϴ. ֳϸ, ˸  쿡 Ҹ ʴ ü̱ Դϴ. ͳ ü Ž â ݾƼ ֹ , ˸ ֹ ϴ. ֳϸ ˸ ݾ ˸ ƴ϶ Smalltalk ȯ DZ Դϴ. ǥ Դϴ. ׷ ˸ǿ ǥ ϴ. ׷ ̷ ǥ ϴ ϱ? װ ٷ ü ؾ 찡 ֱ Դϴ. ǥ 丷 Ƶ ǹ̰ ְ 丷 ǥ ˴ϴ. ׷ٰ ū ǥ ϴ ͵ ٶ ʽϴ. ֳϸ ū ǥ Smalltalk ȯ ؾ ϴ ߿ üԸ ٿ ϱ Դϴ. ׷ ǥ , ÿ ū ǥó ʰ ϱ ؼ ǥ ˴ϴ. ׷ ǥ ǥ ̸ ٸ  ɱ? Ϳ "a" ̸ ǥ , 3̶ ü پ ֽϴ. ׷ ¿ Ʒ 丷 ʽÿ. | a | a := 3 + 4. "Cannot redefine shared variable a" ߸ ߻ a ̸ ǥ ߽ϴ. ׷ ̹ a ǥ ֱ ǥ ٴ Դϴ. ׷  ؾұ? "a" ϴ ǥ ִ Դϴ. ׷ ӰԵ ǥ ֱ ׸ ϴ. ٸ ǥ Ͱ ̸ ϴ ۿ ϴ. ʽÿ. 1) "Edit > Select All" Ͽ Ѵ. 2) "Edit > Cut" Ͽ ߶д. 3) ͸ ݴ´. 4) "File > New" Ͽ ͸ . 5) "Edit > Paste" Ͽ ߶ δ. ̷ ϸ ִ ʹ ̹ ȿ ִ , Ϳ ־ ߶󳻱⸦ Ͽ ӽ (clipboard) Ǿ ֱ Ϳ ۾ϴ 丷 ˴ϴ. Ǽ ǥ  ϸ ˴ϴ. ŷӱ ν ̶ ˴ϴ. ------------------------------------------------------------- ǥ Smalltalk ǥ ʾҽϴ. ߵ Smalltalk ý ǥ ʾҽϴ. ׷ Dolphin Smalltalk-MT ǥ ֽϴ. ó дٰų ó ַ ϴ ýۿ ǥ ʿ , ׷ , Ƽ̵ ٷ ϰ, â(window) ڰ  ǥ ٿ ؾ 쿡 ̷ ǥ ſ ˴ϴ. ---------------------------------------------------------- 3.3.2. ٷ̿ ؼ... ------------------------- ȿ ̳ ̿ؼ Ӵϴ. ׷ ã⵵ ʿ ⵵ Ӹ ƴ϶, ʱ Դϴ. Smalltalk ü մϴ. ׷ ̷ ü ̱ , ֽϴ. Smalltalk ý عٴ ̷ ý ü, ڿ ȭϱ ؼ ʿ ü, Smalltalk ϴ ü ü ֽϴ. ΰ? Smalltalk α׷ ʿ信 ؼ ü ˴ϴ. ̷ ü ƹ å ̰ κ귯 ִٸ ɰ ƴ ϴ. Dolphin Smalltalk ̷ Ͽ "ٷ" Ǿ ֽϴ. ٷ(package) ؼ ̶ ϸ ˴ . ִ ǵ Ƶΰ ʿ ãƼ ų ʿ ִ ó ٷ̿ ü Ƶξٰ ʿϸ ְ, ٷ̿ ü ãƼ ִ Դϴ. Dolphin Smalltalk ġǸ ó ٷ̰ ϵǾ ֽ . "Dolphin"̶ ٷ̴ Dolphin ϴ ⺻ ü , "Ole COM" Windows α׷ ڷḦ ȯ ϰų ٸ  ü ø ؼ ʿ ü ֽϴ. "Scribble" "Etch-A-Sketch" Smalltalk "׸" ̸, ׸ ϴ ü ֽ . ƹư ̷ ٷ̵ ϱ ؼ "ٷ Ž"(package browser) ʿմϴ. "Tools > Package Browser" ޴ <׸ 3-8> ٷ Ž⸦ Դϴ. <׸ 3-8> ٷ Ž (Stp3-8.gif) ٷ Ž ũ κ Ǿ ֽϴ. (pane) Dolphin ġǾִ ٷ̸ Ÿ ̰, ο ش ٷ̿ ִ (class), (method), ū ǥ(global), ڿ(resource), Ÿ (script) ֽϴ. 'ڿ' ϸ ޴, , ׸, â ̷ ȭ ׷ ϴµ ʿ ڷḦ ϸ, Ÿ ַ ٷ̸ ġ Ǿ ɵ Դϴ. Ʒ ο ٷ , (class definition), (method definition) , õ ٷ̿ ؼ ֽϴ. ٷ Ž⿡ ִ ޴ ؼ ο ٷ̸ ְ, ٷ̸ ũ , ٷ̸ Dolphin ġϰų ġ ٷ̸ ֽϴ. ʿ ٷ̴ δ а ִ ̰? 츮 ƺ  ȿ ʿ ü ٷ ̷ ̿ , ٷ Ž⸦ ؼ ϴ ͵Դϴ. ------------------------------------------------------------- Dolphin Smalltalk ٷ ٷ(package) ó Smalltalk ߴ ƴϾϴ. ׷ ð ü ܳ ǰ, ̷ ü ʿ䰡 Ǿϴ. ƿ﷯ ٸ ü ʿ߽ϴ. (class definition) (method definition) .st Ͽ Ƽ Ͽ, ̴ ׾ִ ڵ ִ ü ƴմϴ. Smalltalk ȯ ȸ ڽŵ鸸 Ư ü ϴ Խϴ. Dolphin Smalltalk Package ߿ ϳԴϴ. ڰ ٸ Smalltalk غ ʾƼ 𸣰, ֱٿ Smalltalk ȯ  ε Dolphin Smalltalk ٷó ü ϰų ִ Ѵٴ Դϴ. Dolphin Smalltalk ؼ ϰ ȴٸ ٷ̴ п ſ ߿ Ұ Դ . ߿ ̷ ٷ̿ ü ؾ Դϴ. ٷ Ž⿡ ٷ̸ ġϰ ϴ δ ڽϴ. ---------------------------------------------------------- ... :[] Smalltalk #28 ڷ: [108] :ȫ (ȵ巡) 1999-08-26 15:18 ȸ:154 Smalltalk #28 1999. 8. 26. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  3.3.1. ǥ 3.3.2. ٷ̿ ؼ b3.3.3.  ..... ======================================= 3. ü ä --------------------------- 3.3.  ~~~~~~~~~~~~~~~~ #27... 3.3.3.  -------------------- ݱ ǥ ٷ̿ ؼ ˾ƺ,  ƺô. 츮 峭 "Playground" ̿ ֽϴ. ϴ 峭 ٷ̿ Dolphin ġϴ ۾ ô. 1) "Tool > Package Browser" Ͽ ٷ Ž⸦ . 2) "Package > Install" Ͽ 'Open Package' ڸ . 3) Dolphin Smalltalk ġ ̵Ѵ. ) C:\Program Files\Dolphin Smalltalk 98\ 4) ش Ʒ ġϴ Samples . 5) Playground ؼ . 6) 'Playground.pac' Ŭؼ ϰ "" . ϸ "Playground" ٷ̰ Dolphin ġǰ, ȭ Ʒ ٷ̿ (comment) ǥõ Դϴ. <׸ 3-9> Playground ٷ̸ ġ ȭ (Stp3-9.gif) ٷ̿  ӿ  ֽϴ. 츮 ø ν  , 忡 ׶, , ׸ ÷ ְ ˴ϴ. ⼭ ˸(transcript) , "Loading in Playground package from D:\Progr..." ִµ, ̴ Playground ٷ̸ ġߴٴ ˷ֱ Դϴ. ׷ ʿ ʹ ݰ "File > New" ޴ ؼ ͸ ϳ ô. 忡 ۾ ⼭ ϰ Դϴ. ؾ  ̰? ٷΰ 쿡 ü Ÿ ̸ ָ ü ϴ. "3"̶ ָ ü 3 Դϴ. ׷  ٷΰ ƴմϴ. ׷ ᱹ 츮 ü 츮 ΰ մϴ. Ϳ Ʒ 丷 ʽÿ. Playground new. "Playground" 츮 Playground ٷ̸ ġ ϴ. #new ø Ƚϴ. ׷  Ǿϱ? "a Playground" â ϳ ϴ. â ϳ üԴϴ. Playground ü(instance) Դϴ. â ̸ ũ⵵ ٲپ ʽÿ. űϰԵ 츮 Playground #new ø â ⺻ â ߾ ֽϴ. ׷... 츮 Playground #new ø  , ̰  ؾ ϴ. 콺 ̿ؼ â , Smalltalkδ  ɵ ϴ. ٷ, ü ü ƹ ǥ ٿ ұ ̷ Դϴ. â ȭ鿡 ǥõǾ ֱ â  ַ ص 츮 ǥ ʾұ õ Դϴ. ϴ ִ â ݰ, տ ǥ ٿô. ü 츮 'aPlayground' ̸ ǥ Դ . Ʒ 丷 ʽÿ. aPlayground := Playground new. Ÿ ó Ȱ "a Playground" â ǥõ ϴ. ׷ ̷ ؼ 忡 'aPlayground' ǥ پ ֽϴ. ǥ ̿ϸ ִ â ø ֽϴ. aPlayground ǥ̱ ̷ ǥ ٿ⸸ ϸ ڵ ǥ , ڰ ݱ ʽϴ. 츮 忡 "ȭ ̷ " ø ô. Ʒ 丷 ʽÿ. aPlayground position: 0@0 . #position: 踶 ÷ν, ٷ ڿ ڷ Ѱִ ڸ â ġ ٲٴ մϴ. â ġ ũ⸦ ϴ ؼ ߿ ڼ ˾ƺ, ⼭ ߿ "Playground" #new ø ü ϳ , ⿡ 'aPlayground' ǥ ٿ, ̷ ؼ ٿ ǥ ؼ ü ȴٴ Դϴ. ̷ Ϸ ϴ ߿մϴ.  ô. 츮 ׶, , ׸ Դϴ. Ʒ 丷 ô. dongle := Circle new. semo := Triangle new. nemo := Square new. ռ 츮  "Playground" #new ø ´ Ͻʴϱ? 츮 ׶, , ׸ ؼ ϴ #new ø ־ մϴ. 츮 ׶ ̸ 'dongle' ǥ ٿ,  'semo' ٿ , ׸  'nemo' ٿϴ. ̷ ü ü ϰ θ ֵ ǥ ٿ־ϴ. ̷  ü ü ִ #new ø ָ ˴ϴ. ݱ 츮 ٷ κ ü ٷΰ̾ϴ. ׷ , ׶, , ׸ ٷΰ Ÿ ṵ̈, ̷ ü ؼ 츮 ü "ο ü " #enw ø Դϴ. ̷ ϸ ü ̶ ְڽϴ.  ô. ׷ 츮 ƹ ϴ. ϱ? װ 츮 縸 忡 װ ʾұ Դϴ. Ʒ 丷 ʽÿ. aPlayground add: dongle. aPlayground add: semo. aPlayground add: nemo. 츮 Playground #new ø  ü #add: ø ˾Ƶϴ. #add: 踶 ̰, ڷ Ѱ 忡 ֽϴ. 츮 ׶, , ׸ 忡 ־ϴ.  <׸ 3-10> 丷 Ƶ ֽϴ. ű ʽϱ? :) <׸ 3-10>  ׶, , ׸ (Stp3-10.gif) ̹ 忡 ִ ֺô. Ʒ ʽÿ. aPlayground remove: dongle. aPlayground remove: semo. aPlayground remove: nemo. ϱ? 丷 ϳ Ƶ 忡 ־ 븦 ߰ ˴ϴ.  ü #remove: 踶 ø ˾ ´ٴ Դϴ. 츮 忡 ͻԴϴ. dongle, semo, nemo ǥ پִ ü ʾҽϴ. ׷Ƿ ٽ 忡 ֽϴ. ̹ տ "յ "(cascaded message) ̿ؼ Ѳ ְڽϴ. < 1> յ ø ̿ؼ 忡 ֱ ---------------------------------------------------------- aPlayground add: dongle; add: semo; add: nemo. ---------------------------------------------------------- ݱ 丷 ϳ ص Ǿ, յ ̱ (block) Ѳ ؾ մϴ. ƹư ϸ 忡 ٽ ׶, , ׸ ֽϴ. 嵵 ű⿡ٰ ׶, , ׸ , ݺ ̵ ƺô. 켱 ̴ սô. ȭ ̷ ֽϴ. ̷ ȭ(, pixel) θµ, ȭ󿡼 Ÿ ũ⸦ ̷ ȭҸ մϴ. 츮 " ȭҸŭ " ø ־ մϴ. 忡 ִ ׸𿡰 "30 ȭҸŭ " ø ô. ׸ ü nemo ǥ پ ֱ nemo moveRight: 30. 丷 ϸ <׸ 3-11>ó ׸ ణ ٴ Դϴ. <׸ 3-10> 񱳸 ñ ٶϴ. и ׸ 30ȭҸ ̵߽ . 츮 ׸ ü #moveRight: ø ־ Դϴ. ̹ Ķ ﰢ Űܺ ϰڽϴ. #moveUp: ø մϴ. Ÿ ȭ ־ ϴ. dongle moveUp: 100. <׸ 3-12> #moveUp: ÿ ϴ ﰢ (Stp3-13.gif) ȭ鿡 100ȭ űⰡ Ǵ ʴϱ? ó ȭ ҿ Ÿ Ī Դϴ. ׷ ȭ ǥ ̿ϰ Ǹ Ÿ Դϴ. ũ⸦ ٲ ֽϴ. ũ⸦ ø #growBy: ø ָ ǰ, ݴ ũ⸦ ̷ #shrinkBy: ø ϸ ˴ϴ. ũ ȭҸ մϴ. semo growBy: 50. nemo shrinkBy: 30. <׸ 3-13> ũ⸦ ϴ #growBy: #shrinkBy: (Stp3-13.gif) ũ ǵ ÿ ̰, ٿ ø ϴ. ׷ϱ semoԴ #shrinkBy:, nemoԴ #growBy: ָ ˴ϴ. Դϴ. semo shrinkBy: 50. nemo growBy: 30. 忡 ִ ŭ ȸ ų ֽϴ. ̸ ؼ #rotateBy: ø մϴ. nemo rotateBy: 45. semo rotateBy: 90. nemo 쿡 ̾Ƹ ϰ , 45 ŭ ȸ Ǿϴ. 쵵 Ͽ ȸŰ ȭ Ʒ ٶ󺸴 ﰢ Դ . <׸ 3-14> 캸 #rotateBy: ø  캼 Դϴ. ׶ ̸ Ȱ ̶ θ ? <׸ 3-14> #rotateBy: ϴ (Stp3-14.gif) 忡 ִ ٲپô. ٲ ؼ #color: ø ϸ ˴ϴ. #color: ô "Color" ü ʿ մϴ. ٷΰ ƴϱ "Color" ø Ÿ ü մϴ. ⺻ "Color" ü #red, #green, #black, #blue, #yellow, #cyan, #magenta, #gray 츮 ϴ ̸ ÷ ˾ ϴ. ׷ Ÿ "Color red" Ǵ Դϴ. ϴ ͺٴ ϱⰡ ? 忡 ִ ʷϻ ٲپ ڽϴ. տ ߵ  ٲٱ ؼ شϴ ü #color: ־ մϴ. semo color: Color green. 켱 "Color" ܸ (unary message) #green ˴ϴ. ׷ ᱹ #green ø "Color" ʷϻ Ÿ ü , ̰ 踶 #color: ڷ Ѿ ˴ϴ. ᱹ semo Ű ü ʷϻ ٲ Դϴ. ̷ ׸ ׶ ٲ ֽϴ. nemo color: Color magenta. dongle color: Color cyan. ̷ #color: ø ϸ ٲ ֽϴ. <׸ 3-15> 캸 ð ٲپ ֽϴ. <׸ 3-15> #color: ø ˾Ƶ (Stp3-15.gif) ׷ "Color" Ѱ谡 ֽϴ. "ұ׽ "̳ "Ǫ ȸ" ǥϱ ָ  ؾ ұ? ̷ Ű ̸ٴ ƿ ǥ ij ϴ Դϴ. ׶, , ׸ #chooseColor ܸ ˾Ƶϴ. ð Ǹ ǥ , ⼭ ϴ Ͽ ֽϴ. dongle chooseColor. Ǹ <׸ 3-16> ִ ȭ ϴ. ִ 쿡 " " ߸ ̼ϰ ֽϴ. <׸> " " ߸ ȭԴϴ. <׸ 3-16> #chooseColor ǥ (Stp3-16.gif) ⼭ ϴ "Ȯ" ߸ ٲ ˴ϴ. ۿ "Color" ÿ (hue) ü(saturation) ̿ؼ ְ, , ʷ, Ķ ̿ؼ ֽϴ. ƹư ߿ ؼ ڼ ٷ "Color" ؼ ˾ƺ ϰڽϴ.  ô. 忡 ִ Ϸ "Playground" ü #remove: ø #remove: ø ֽϴ. 忡 "û϶" ø ָ Ѳ ֽϴ. aPlayground clear. 丷 ϸ 忡 ִ ϴ. ǥ ٿξٸ #add: ø ̿ؼ ٽ 忡 ֽϴ.  ׳ ݾƹ ׸Դϴ. ݱ 캻 ó  ü ϱ ؼ ü ˾ ִ ø ָ ˴ϴ. ð ƴ϶ μ  ؾϴ ڼϰ ˷ ʿ䰡 踶 ÿ ڸ ϸ ˴ϴ. ̰ ü з Դϴ. ִ ̷ ͵ ʿϸ ٴ Դϴ. ̰ Smalltalk ū Ư¡Դϴ. Smalltalk ǽð(real-time) óǸ, ü ǽð ϴ. ̵ Smalltalk ⸸ ϸ ɿ ü մϴ. ̽(BASIC) 뿪 ȯ ϰ ߽ Ǵ ̽İ ü ߽ ̷ Smalltalk ϴ ŭ ̰ ֽϴ. "Playground" ٷ "Circle", "Triangle", "Square" ˷帰 ͺ ξ ø ˾Ƶ ֽϴ. Ʒ ̵ ü  ø ˾Ƶ ִ ڽϴ. Ϳ  , ü鿡 ø Smalltalk ü , ׸ ü ߽ Ѵٴ 󸶳 Դϴ. ---------------------------------------------------------- side ˾Ƴ. 쿡 3 , 쿡 4 , ׶ Ƿ 100 . sides: anInteger ø Ѵ. ޶. ⺻ ׶, , ׸ ø ̿ؼ ̻ . radius ø ǵش. radius: anInteger ø Ѵ. ̿ 絵 ޶. rotation ø  ϰ ִ (degree) ش. rotation: anInteger ø anInteger Ѵ. position  ִ ǥ(Point) ˷ش. position: aPoint ġ aPoint Ѵ. (x@y) ǥ µ, #@ ø ޾Ƽ ǥ ֱ ̴. color ø . color: aColor ø aColor Ѵ. Color ø  ִ. growBy: anInteger ø anInteger ȭҸŭ ø. shrinkBy: anInteger ø anInteger ȭҸŭ δ. rotateBy: anInteger ø anInteger ŭ ȸŲ. moveBy: aPoint ø Ÿ aPointŭ δ. moveLeft: anInteger moveRight: anInteger moveup: anInteger moveDown: anInteger ø , , , anInteger ȭҸŭ δ. chooseColor Windows ִ ǥ ǥ Ͽ ڰ ֵ Ѵ. ---------------------------------------------------------- 忡 پ Ƶ ϴ. и  е ø ٸ ֽϴ. ̵鵵 Smalltalk ü̱ ϴ ø ϴ. ø ̿ؼ ǵ Smalltalk ü ø ñ ٶϴ. ׸  ʹ Smalltalk ü ø Ϸ Ȳϴ սô. ü ø ߸Ͽ Ǽ ϴ 쵵 𸨴ϴ. ׷ ׷ Ǽ ߴٰ ؼ Smalltalk ȯ ı ʽϴ. Smalltalk ſ ϱ  ؼ ü ø 쿡 (walk back) â ϴ. ¿ Ȳ "Terminate" ߸ ֱ⸸ ϸ ˴ϴ. ׷ â · ǵƿɴϴ. ̹ Ұ  Smalltalk ٸ õ Դϴ. ׷ ݺ  ִ  ø ˾Ƶ, ̷ ˾Ƶ  ϴ ͼñ ٶϴ. е ؼ ͼ Դϴ. ------------------------------------------------------------- Smalltalk ׷ ȯ Smalltalk ȯ ȯ ȸ縶 Ư Ư¡ ֽϴ. κ Smalltalk ⺻ κ ų , Ư ׷̳ Ƽ̵ óϴµ ־ ǥ Smalltalk ȸ ڽŸ ̷ ͵ ϴ. Ư Smalltalk ̿ؼ ǹ ؾ ϴ α׷ 쿡 װ (framework) ־ ϴµ, Smalltalk ߻鸶 ణ ̰ ֽϴ. ƹư ڴ ְ, ý۰ ȣȯ ִ Dolphin Smalltalk 븦 մϴ. ¼ ٸ 迭 Smalltalk ϴ пԴ 𸣰, κ 븦 ϰ ٸ ȸ Smalltalk ۾ ؾ ִٰ մϴ. ̹ 𿡼 ٷ (Playground) Dolphin Smalltalk MVP (Model-View-Present) 븦 α׷Դϴ. Smalltalk ϰ Ǹ Dolphin Smalltalk α MVP ϰ Դϴ. ---------------------------------------------------------- =========================================================== ̹ 𿡼 츮 Smalltalk â ϴ  â ǥ õ 鿡 ø ν ü̶ ߽ϴ. տ ˾ƺ ü ø ǻ ð ϴ. в "Circle", "Triangle", "Square" ü Ӱ ٷ ִٸ, ̹ Smalltalk ǹ̸ Ʋ 80% ̻ ̳ ϴ. ô.  ü ٸ 𸣴ϱ. ... :[] Smaltlalk ڷ: [109] :ȫ (ȵ巡) 1999-08-31 20:09 ȸ:136 Smalltalk α׷ ؼ ̾߱⸦ ұ մϴ. Smalltalk Java α׷ մϴ. Ϳ Է 丷̳ (class) (method) ִ 켱 , ׷ϱ Compiler ؼ Ʈ ˴ϴ. ̷ Smalltalk (Virtual Machine) 뿪(interpreting)Ͽ Ѵϴ. Java ߵDZ 10 ξ Ʈ 뿪Ⱑ Ǿٴ , Smalltalk Xerox ParcPlace ִٰ ϰڽϴ. κ Smalltalk ̷ ưϴ. ׷ ʿմϴ. Ͽ Ʈ 뿪 ڰ Smalltalk α׷ Բ ֽϴ. Smalltalk ṵ̈ ü Ƿ, α׷ ü Ƴ Դϴ. Smalltalk ̵ ϳ ٷ(package) ־ΰ, ʿϸ ٷ ü ٷ̿ ϴ ü Ͽ ѵ մϴ. Smalltalk ְ ׸ ʾҽϴ. ׵׷ Smalltalk ȯ ü ٸ ȯ濡 ſ ũ⿴ , Smalltalkȯ ü ص Ǿϴ. ׷ ü Ѿ鼭 ũⰡ Smalltalk ȯ濡 ʿ ü鸸 ̾Ƴ ְ . ƽ Dolphin Smalltalk "ADK" , Application Deployment Kit̶ ٷ̸ ؾ մϴ. ٷ 70$ ۿ DZ ٸ ȯ濡 ؼ ϰ ǰ ֽϴ. ٰ ؼ Dolphin Smalltalk ü ƴմϴ. ADK ʰ Ǵ (ַ ϰ ȯ ȯ ü ִ κ) ̷ֱ . Dolphin ƴ ٸ Smalltalk ֵ ҽϴ. ׷ θ ̴ VisualWorks for Smalltalk, Visual Ages for Smalltalk մϴ. Smalltalk-MT ý Ʈ ġ ʰ ٷ մϴ. ׷ ٸ Smalltalk ٴ α׷ ӵ ϴ. ׷ Smalltalk-MT ANSI ǥ Smalltalk ʴ ͵ ٴ ֽϴ. 30 ִ ǿ , ǿ ֽϴ. Smalltalk-MT (multi thread) ư DLL , ActiveX Ʈ ϴٰ ϴ. Smalltalk ʿϸ 󸶵 ü ൿ ٲپ ִ ȯ̱ , ADK غ ֽϴ. ۽. ׷ Smalltalk վε.... C/C++ ΰ ü 40% Ѵٰ ص ƴ, Smalltalk δ ü 10% ˴ϴ. 90% ٹ(class library) ü (framework) ϴµ ϴ. , ϰڽϴ. Ѻֽʽÿ. :[] 簡 ʾ ˼մϴ. ڷ: [141] :ȫ (Ϲ) 2000-02-24 23:30 ȸ:53 ȳϼ? ȫ ȵ巡Դϴ. 켱 Smalltalk ʾ ˼մϴ. ܼ ø ߽ϴ. 3 DZ #29 ø Դϴ. ʹ ʾ ˼ϰ, ϰ ̴ּ е鿡 帳ϴ. C/C++ ٸ ϰ, ׷ α׷ ʺڿ θ ų ִ Smalltalk....  ϱ ؼ ϰڽϴ. ʹ ٸ ˼մϴ. ׷. :[] Smalltalk #29 ڷ: [142] :ȫ (Ϲ) 2000-02-25 14:45 ȸ:80 Smalltalk #29 2000. 2. 25. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  3.4. , Ǽ!!! a3.4.1. Ϸ 3.4.2. Ǽ, Ǽ ........ ======================================= 3. ü ä --------------------------- 3.4. , Ǽ!!! ~~~~~~~~~~~~~~~~~~~~~  ϴٰ Ͻðڽ ? " ͼ " Դϴ. ڽ ϰ ִ , ˰ ִ Ŀ ͼٰ ϸ ó 尨 , ᱹ ̰ 'Ǽ' Դϴ. Smalltalk Կ ־ ̴ ϴٰ ϰڽϴ. Smalltalk ؼ ͼ , ü ø ͵ ڽ پٰ ٷ 'Ǽ' 縮 ִ ϴ. ڵ ó Smalltalk ̷ ''ϰ ִٰ ȼ ֽϴ. 𿡼 Smalltalk ϴٰ ִ , Ǽ ٷ 鿡 ؼ ˾ƺ Դϴ. Smalltalk Ǽ ؼ ϰ óϰ ֱ , ū α׷ ۼϴµ ־ ̷ Ǽ ߴ ֱ Ǽ ϳ 볳ؼ Դϴ. ׷ ٴϴ '' ̾߱ ϵ սô. 3.4.1. ' ' Ϸ ---------------------- 4г . ٸ лó غ ϴ. ׷ ŸԵ پ(?) Ƿ ¥ ̸ ģ ϼ ϴ. ؼ տ ΰ ִµ, Ϸ ˰ ִ ̶ 뿡 Ʈ (FORTRAN)ϴ. ϰ ִ Ѻ ִ ģ ˾ƺ ְڴٰ Ǹ ߰, ó ƴϾ ģ ż ߽ϴ. ģ ΰ ġ ǰ ϰ ִ "" ȸ翡 õ߽ . ̷¼ Ÿ ٸ غϴ 鼭 ģ Ͷ ξϴ. " ȸ ȸ̱ ü⿡ ؼ ̴. ׷ϱ ü⿡ ؼ θ ζ." ü ΰ ۵Ǿϴ. ׷ ó εϴ. ü å 缭 оô ű⿡ Object, message, class, instances, receiver, polymorphism, inheritance, encapsulation Ӹ ̻ ־ϴ. Ⱑ 븩Դϴ. ϴ 迡 ü α׷ κ ϰ, ģ αⰡ ٰ ϴ C++ ϱ ߽ϴ. ׷ 3 Ʈ C++ ʹ ޶ϴ. ڽ ̷ ؼ ߽ϴ. ð ɸ ̾, ϴ ؼ ε ְڰŴ ϴ ߽ϴ. پ ߰ ǽ "" ȸ翡 ϰ ϴ. ó Ʈ ΰ ο ġ ϰ ź (carbon steel rod) ̸ ϴ ̾ϴ. ΰ Ʈ Smalltalk ؼ ߵDZ ݵ Smalltalk ؼ ؾ Ѵٰ ϴ. ׸ ο߽ϴ. * ΰ ְ µ 500̴. * ź µ ̰ þų پ. * ΰ 븦 ž ȭ Ͽ . ΰ ¾翭 ް Ǹ µ 500 ö󰡰 µ, ź µ ö󰡸 ̰ þ ˴ϴ. ׷ 500 ź ̰ 󸶳 þ ؼ ΰ ı 𸣴 Դϴ. ̷ ¸ ؼ __" 500 ź ̴ þ°"__ ذϴ Ʈ Դϴ. ׷ įįմϴ. ģ ü α׷ Ϸ C++ ϶ ϴµ, ȸ Smalltalk ϴ ? ׷ Ӹ C++ ΰ Smalltalk Ʈ ϴ ؼ 忡 ϴ. "C++ ü  ƴ϶ ü ߱ϴ Դϴ. 츮 ǰ ʽϴ. Ű ʹٸ C++ ٴ Smalltalk ̴ϴ." ٸ 𸣰 ϴ ε ߽ϴ. ʿ ڷḦ ߽ϴ. ȸ翡 µ ź ȭ ϴ. s = s0(1 + Af) - s0 : ȭ 0 ź . inch. - A : Ȯ (coefficient expansion) = 6.7 * 10^-6. - f : ȭ µ - s : ȭ f ź þ Ŀ "s0" ȭ 0 ̸ մϴ. "A"() Ȯ ε, ̴ ȭ 1 ݼ ̰ 󸶸ŭ þ Ÿ Դϴ. ׸ "f" Ϸ ϴ ȭ µ (fahrenheit degree)Դϴ. ڷ ̰Դϴ. ̿ؼ 500 ̸ ˾Ƴ ϴ Դϴ. ׷ ֽϴ. µ(centigrade degree) ƴ϶ ȭ µ Ǵ Դϴ. ϱ 켱 µ ȭ µ ٲپִ ۾ ʿմϴ. , Ÿ ϸ ȸ翡 ߸ ʰ ʰԱ ߰ ۾ ϱ ϰ, µ ȭ ٲٴ Ʒ ã ϴ. 9 f = 32 + --- c 5 - c : µ - f : ȭ µ įįմϴ. ȭ µ ź ϴ İ µ ȭ µ ٲٴ , ̰ Smalltalk 丷 ᳻ ϴ Դϴ. ð ټ . ƿ 鼭 å ſ Ӹ . Բ ǽ 帴 µ.... 3.4.2. Ǽ, Ǽ -------------------- ٶ Ӹ ϴ. ð , ñ Smalltalk 丷 ؼ 忡 ˻ ޾ƾ մϴ. ׷ ð 30. ڽ ῡ ϴٴ Smalltalk ý մϴ. Ӹ մϴ. ׷ ϴ ذϸ մϴ. µ ȭ µ ٲٴ ĺ Smalltalk ؼ ¥ ߽ϴ. 9 f = 32 + --- c 5 ϴ Smalltalk м "/" Ἥ Ÿ մϴ. ׷Ƿ f = 32 + 9/5 c (1) ٲ ֽϴ. ׷ (1) ֽϴ. Smalltalk ؼ ڰ ˸° ġǾ մϴ. ׷ "9/5" "c" ̿ ƹ ڰ ϴ. ġ ڸ ־ ʿ䰡 ֽϴ. п ڸ ʽϴ. ׷Ƿ ڸ ؼ Ʒ ĥ ֽϴ. f = 32 + 9/5 * c (2) , ׷ ϳ ϼ ϱ? Ϲ Ŀ ̻ Դϴ. ׷ Smalltalk ؾ մ . տ "(method) 켱 " ؼ ٿ , Smalltalk __㸶 (binary message) ʿ Ƶȴ__ Ģ մϴ. ׷Ƿ "32 + 9" ƵǾϴ. "9/5" м ֱ ؼ ȣ ؼ ĥ ʿ䰡 ֽϴ. f = 32 + (9/5) * c (3) ׷ ⼭ ƴմϴ. Ŀ и Ի Ǿ մϴ. "(9/5)" "c" ڿ "32" ؾ Ϲ , (3) ȣ ϳ ѷ־ 켱 Ȯ ݴϴ. f = 32 + ((9/5) * c) (4) ׷ (4) Smalltalk ȴٸ "9/5" ѷΰ ȣ ʿ䰡 ϴ. ֳϸ 켱 "/" ǥ (selector) "*" ǥ Ƶ ̱ Դϴ. ׷ ֽϴ. f = 32 + (9/5 * c) (5) ϼԴϴ. µ ȭ ٲٴ Դϴ. ź ̸ ϴ Smalltalk 丷 ô. s = s0(1 + Af) ȸ ڷῡ "s0" 30̶ Ƿ, 丷 ֽϴ. s = 30 * (1 + (6.7e-6*f)) 丷 Ŀ ڸ ٿְ 켱 ùٸ ٲپֱ ؼ ׿ ȣ ѷ־ϴ. 丷 ϳ ļ Ʒ < 1> Դϴ. < 1> źҸ ϱ (1) ---------------------------------------------------------- c = 500 f = 32 + (9/5 * c) s = 30 * (1 + (6.7e-6*f)) ---------------------------------------------------------- ۿ "c" ξ µ 500 Ÿ ߽ . < 1> ϱ ؼ (workspace) 丷 Է 丷 ϴ. , ϰ ϴ! ȣ, ~! ü ۼ < 1>  ִ 츮 ۿ (block) "Workspace > Display It" ϰų ۼ踦 丷 ô. ׷ <׸ 3-17>, <3-18> Դϴ. ׸ Ǹ ° ġ ߴ Դϴ. <׸ 3-17> < 1> ϱ ̸ (Stp3-17.gif) <׸ 3-18> "undeclared" ߸ ߻ (Stp3-18.gif) <׸ 3-18> ϴ ڱ ٲ ְ, "c" ڿ ̰ ֽϴ. Ⱑ "c" ִٰ ˷ִ Դϴ. ü  ִ ϱ ? Ʒ ִ ǥ 캸 ǥ Բ Դϴ. Error: undeclared 'c' ߸(error) ִϴ. "undeclared" " ʾҴ" ̱ , "'c' ʾƼ ߸ ϴ" Դϴ. , Ǽ ߴ ƽðڽϱ? Smalltalk  ü ̸ ̰ų ü α ؼ ǥ(variable) پ Ѵٰ ߽ϴ. 츮 ۿ ǥ c, f, s ϴ. ׷ Smalltalk ǥ __ ־__ Ѵٰ ֽ ϴ. ǥ(workspace variable) ū(global) ǥ ϴ ü ٷ ǥ ϴ , 츮 ̸ 丷 ȿ ǥ ؾ ϱ , ǥ(temporary variable) մϴ. ǥ ϱ ؼ 丷 κп ̿ ۿ ǥ ̸ ָ Ǵ ϴ. 츮 c, f, s, ǥ ̹Ƿ Ʒ ֽϴ. | c f s | ̷ ϸ ǥ ǥ ü ֽϴ. ڴʰ ̷ < 2> 캸 սô. < 2> źҸ ϱ (2) ---------------------------------------------------------- | c f s | c = 500 f = 32 + (9/5 * c) s = 30 * (1 + (6.7e-6*f)) ---------------------------------------------------------- ̻ ʱ⸦ ٶ鼭 < 2> մϴ. ׷... Ѿ Դϴ. <׸ 3-19> ʽÿ. <׸ 3-19> "SmallInteger does not understand #f" (Stp3-19.gif) < 2> <׸ 3-19> â(walkback window) Ÿϴ. ð 8 40. ūԴϴ. ð ٰµ ڲٸ ٴ.... â ǥ "SmallInteger #f ϴ" ֽϴ. "SmallInteger  ü ִµ, ü #f ϴ ø ˾Ƶ ϴ" Դϴ. ׷ ü SmallInteger ü #f ü ϱ? ̷ ϼ ü ϸ и ϴ. ٸ ô. 츮 < 2> SmallInteger ü 'f' ø __ ϴ__. ׷ Smalltalk < 2> SmallInteger ü f ø ´ٰ ϰ ֽϴ. ⼭ ٷ "f"Դϴ. "f" 츮 ǥ Դϴ. ׷ c = 500 f = 32 + (9/5 * c) κ ֽϴ. "f" տ 500̶ ڰ ֽϴ. 500 SmallInteger, üԴϴ. ׷ 500 'f' ð ٴ ε.... Ȯ ˾ƺ ؼ < 2> ٲپ < 3> ҽϴ. ϴ ִ â "Terminate" ߸ ڿ Ʒ 캾ô. < 3> źҸ ϱ(3) ---------------------------------------------------------- | c f s | c = 500 f = 32 + (9/5 * c) s = 30 * (1 + (6.7e-6*f)) ~~~~~ ---------------------------------------------------------- Smalltalk ٲ۴ٰų ĭ ŭ ִ´ٰ ϴ ʽϴ. ٿ þƵ ࿡ ƹ ٴ ε.... ģ 캸ʽÿ. ٷ Դϴ. 翬 "500" 'f' ø ˴ϴ. ̰ ˴ϱ? 翬 500 'f' ÿ ؼ â ǥ ϰ Դϴ. , ׷  ؾұ? ݱ ۿ ߸ ̰ ϱ? , ٷ ħǥ(.)Դϴ. Smalltalk ڿ ݵ ħǥ ʿմϴ. ׷ ݱ ڿ ħ ǥ ʾҽϴ. ˾ < 3> ħǥ ٿ Ʒ ϴ. < 4> źҸ ϱ (4) ---------------------------------------------------------- | c f s | c = 500. f = 32 + (9/5 * c). s = 30 * (1 + (6.7e-6*f)). s. ---------------------------------------------------------- ħǥ ־ϴ. ׸ "s." ۿ Ȯ ֱ ؼ Դϴ.  ü ü پ ִ ǥ ִ ״ ״ Ϳ Ÿ ϰ ð? , Դϴ. < 4> ٽ ٿ  ֵ < 5> ٲپ ô. ƹ ٿ ִ ͺٴ ٿ ɸ ִ д ˴ϴ. < 5> źҸ ϱ (5) ---------------------------------------------------------- | c f s | c = 500. f = 32 + (9/5 * c). s = 30 * (1 + (6.7e-6*f)). s. ---------------------------------------------------------- ξ ˾ƺ ϴ. ̷ < 5> ô. 츮 Դ . ̹, ̹ ǰ? < 5> ô. <׸ 3-20> UndefinedObject does not understand #multiplyByFraction: ߸ ߻ (Stp3-20.gif) ~~~~! ڵ ϰ ϴ... --: .... Ǵٽ â Ÿϴ. ׷ ̹ 󰡻 ü 赵 ǥ Ҿ ƢԽϴ. ü UndefinedObject Ƣ԰, #multiflyByFraction: ϴ ǥ, ϱ⸸ մϴ. 𼭺 ؾ 𸣰ڽϴ.... --: ð 10йۿ ʾҴµ.... и ֽϴ. ٷ â ãƾ մϴ. â ߻ϱ  ߴ 밡 Ÿ ֽϴ. 츮 븦 ¤ ν ˾ ֽϴ. â ǥõ  ߸ , ݰ ü ˴ϴ. â ǥõ 븦 Ʒ ϴ. 븦 ¤ 󰡱 ؼ Ʒ ö鼭 о Ѵٴ ʽÿ. UndefinedObject(Object)>>doesNotUnderstand: Fraction>>* UndefinedObject>>{unbound}doIt CompiledExpression>>value: SmalltalkWorkspace>>evaluateRange:ifFail: SmalltalkWorkspace>>displayIt ...( )... 븦 Smalltalk Ϳ ִ displayIt̶ ó Ǿ ֽϴ. 츮 丷 ̸ Ͽ 丷 ϸ ̿ 밡 ϴ. ƹư ؼ 븦 󰡴 ߰ ֽϴ. UndefinedObject(Object)>>doesNotUnderstand: Fraction>>* ˴ϴ. ׷ٰ Fraction ü, м ü #* ð ϴ. ׷ , UndefinedObject #multiplyByFraction̶ ð ٴ Դϴ. 츮 ۿ UndefinedObject , #multiplyByFraction̶ ϴ. ȯ 븩Դϴ. ׷ ƹư м ü #* ð 鼭 ۵Ǵ ؾ Դϴ. ۿ Fraction, м ü "9/5"ε, м κ Ʒ ̰ڽϴ. f = 32 + (9/5 * c). 丷 켱 ϸ鼭 ô. ȣ "(9/5 * c)" ٵ, "9/5" #/ ð Դϴ. ׷ "9/5" м ü ˴ϴ. ü #* ð µ, #* ô 㸶 ̹Ƿ, #* ǥ ʿ ִ ü (parameter) մϴ. ⼭ #*, ڴ ٷ "c" ˴ϴ. ׷ ۿ ϸ "c" ǥ 500 پ ־ մϴ. ׷ ⼭ ٴ ᱹ "c" ǥ  ִٴ ֽϴ. ü "c" ǥ  ü پ ? < 5> ٿ ̸ ô. | c f s | c = 500 false <׸ 3-21> "false" ѱ ȭ (Stp3-21.gif) ? ""(false)? ̶ ? ذ ϴ. "c" ǥ 500 ٿ 翬 ǥ 500̶ ü ״ Ÿ ϴµ, ''̶... ߸Ǿ ִ մϴ. ü ǥ ٿµ ̶ ñ..... ü ǥ ٿ? __δ__... ٿ..? ׷! ǥ! ! ˾ ϴ. Smalltalk ǥ  ü ̱ ؼ ǥ ϴµ, ǥ ٷ ":="Դϴ. ݸ "=" ü ٸ ϴ ǥϴ. ᱹ c 500 ϴ ε, ǥ c پ ִ ü 500 ޶ (false) Ѱ Դϴ. ׷ ǥ c پ ? ۿ ̸ ʽÿ. | c f s | c nil <׸ 3-22> c ǥ ƹͿ پ ʾҴ! (Stp3-22.gif) ׸ c ǥ ƹ ͵ پ ʾҽϴ. 'nil'̶ ", ִ , " Ÿ , ᱹ cǥ ƹ ü پ ʾҴ Դϴ. (nil) 500 ϶ (false) ۿ. , ׷ ۿ ִ "=" ǥ ":=" ٲپ ϰ ? ̷ ؼ < 6>Դϴ. < 6> źҸ ϱ () ---------------------------------------------------------- | c f s | c := 500. f := 32 + (9/5 * c). s := 30 * (1 + (6.7e-6*f)). s. [ ] 30.187332 ---------------------------------------------------------- , ⻵ ֽʽÿ! ư ϴ. ⸦ ؼ ˻ Ȱϴ. ° Ÿϴ. ̷ ! ½ϴ! ˻ ڸ ð ħ ȩ ø ŵϴ. ħ å 湮մϴ. " ." Ҹ 鸳ϴ. ڽ ְ ؼ ϴ. ߽ϴ. " ߱. ׷ 100 ̸ ھ? ٷ ." ó "c" ϴ ǥ ߱ µ ϴ Ա⿴ϴ. ܼϰ "c" ǥ 500 100̶ ü ٲپ ٿְ Ǵ ̾ . Ʒ <׸ 3-23> ʿ Ÿϴ. <׸ 3-23> µ (Strp3-23.gif) " . α׷ ݸ ص µǴϱ մϴ. ߾. бⰡ Ʊ." ù ° Ʈ ½ϴ. ν Ӹ, ǪǪ , , θư Լ. ߴ ٸ ٲ ־, 𰡸 ̷´ٴ ϴ. Ī ޾... ׷ ӱ Ǿ ϴ. " бⰡ Ʊ." ϱ... б ? ϰ ִ , ٷ ᰡ մϴ. "ڳ, ༭ Ҿ. ׷ϱ ?" ... :[] Smalltalk #30 ڷ: [144] :ȫ (Ϲ) 2000-03-03 17:18 ȸ:69 Smalltalk #30 2000. 3. 3. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  3.4. , Ǽ!!! 3.4.1. Ϸ 3.4.2. Ǽ, Ǽ b3.4.3. ⵶ ȿ 3.4.4. ........ ======================================= 3. ü ä --------------------------- 3.4. , Ǽ!!! ~~~~~~~~~~~~~~~~~~~~~ #29... 3.4.3. ⵶ ȿ ---------------------- ' б ¥ Ҹϱ?' ܿ ų ƿ鼭 ̷ þ . ڸ ģ 'α׷ ؼ (source code) ''̱ б Ѵ' Ƿ߽ϴ. ƿ﷯ ״ ¢ ʾҽϴ. " б ϴ ͵ ߿, α׷ ȿ Բ ؾ . ڳװ § ȿ ׸ ʾҾ." ģ ؼ ̾ 𸣰 ó⸸ մϴ. ߴµ, ׷ Ҵµ, ڽ § б⵵ ȿ ٴ ħ . ɾ ٷ ִ а ִ Դϴ. , ϱ⵵ ư ȿ ؼ 캸, ̶ ָ ? α׷ ۼϴ ' ϸ α׷ ȿ ' ؼ ϰ մϴ. Smalltalk ϰ ִ е α׷ ȿ ġ ʿ . ׷ ȿ̶ ̸, ̰ ʿ, ׸  ϸ α׷ ȿ ִ ؼ ˾Ƶδ ʿ ̶ մϴ. ȿ(efficiency)̶ ɾ Ͽ óϴ մϴ. ׷ϱ Ȱ ϴ  ̰ λϰ ϴ ִ° ϸ, ٸ ʿ ϸ ϴ 찡 ִµ, ߿ 찡 ȿ ٰ ֽϴ. ׷ ٽ 캸鼭 ȿ 캸 սô. < 6> źҸ ϱ () ---------------------------------------------------------- | c f s | c := 500. f := 32 + (9/5 * c). s := 30 * (1 + (6.7e-6*f)). s. ---------------------------------------------------------- ۿ (SmallInteger), м(Fraction), Ҽ(Float) ü ǰ ֽϴ. ׷ "2.2.6. ! ! !" м Ҽ 쿡 ̷ ϴ Ҽ ٲٰ ̾߱ ֽϴ. ׷  ȭ Ͼ 캾ô. | c f s | c := 500. c := f := 32 + (9/5 * c). f := * м * s := 30 * (1 + (6.7e-6*f)). s := * ( + (Ҽ*м)). s. Ҽ ó ǥ "c" Ե˴ϴ. Ʒ ˴ϴ. f := 32 + (9/5 * c). ~~~ ׷ Ŀ м "9/5" ֱ DZ ϴ м ٲϴ. ׷ ǥ "f" м ϴ. Ƽ Ǹ ̰ , κ "f" ǥ м ϴ. "s" ǥ Ͽ ֱ ˴ϴ. s := 30 * (1 + (6.7e-6*f)). ~~~~~~ , м, Ҽ ϰ ֽϴ. Ҽ ٲ ̷ϴ. < 6> ü м Ҽ ٲ ˴ϴ. м ȯǴ ,  ü Ҽ(Float) ٲ 밡 ġ մϴ. 츮 "(9/5)" "1.8"̶ Ҽ ٲ Ǿ մϴ. α׷ Ҽ(float) ϴ ü Ҽ ȯDZ ɸ ð ּȭ ʿ䰡 ֽϴ. ׷ ĥ ֽϴ. < 7> źҸ ϱ (Ҽ ) ---------------------------------------------------------- | c f s | c := 500.0. f := 32.0 + (1.8 * c). s := 30.0 * (1.0 + (6.7e-6*f)). s. ---------------------------------------------------------- < 7> 캸 Ŀ ü Ҽ ֽ . ̷ ϸ ü ȯ ʿ ȿ ֽϴ. ׷ < 7> ȿ پ бⰡ < 6> ƽϴ. "30" ǥص ȿ "30.0" Դϴ. ̷ ȿ ߽ϸ ⵶ ֽϴ. տ 'ȿ'̶ Ǵ ϰ __ ϴ__ ̶ ֽϴ. ̷ ٸ ݱ 츮 Smalltalk ϴ ǥ(variables) մϴ. ƿ ǥ ʰ Ǹ ǥ  ֽϴ. 丷 캾ô. 30 * (1 + (6.7e-6 * (32 + (9/5 * 500)))) 30.187332 丷 ǥ ʰ  丷Դϴ. < 7> Ҽ ġ Ǹ ǰ? 30.0 * (1.0 + (6.7e-6 * (32.0 + (1.8 * 500.0)))) 30.187332 丷 ǥ ʾҰ, ü Ҽ ٲپ ǥ ߽ϴ. Smalltalk 忡 ſ ȿ پ ӿ иմϴ. ׷, 丷 캾ô. 丷 źҸ븦 ϴ ̶ ְڽϱ? ü ϴ ϴ. 丷 ǫ ٰ ٽ 丷 ߰ߴٰ ʽ . 丷 'ź ϴ 丷'̶ ְڽϱ? , ׷ 丷 100 ź Ѵٰ ô. 丷 ľ ݹ ? ̷ 쵵 ô. '' ȸ簡  ź ξ 븦 ٰ ô. ׷ ̹ ź 밡 ƴ϶ ̸ ؾ մϴ. 500 ̸ Ϸ Ѵٸ 丷  ľ ϰڽ ϱ? ʽÿ. ̸ , κ 鸸 丷 ٵ ϰ մϴ. , 丷 ȿ ־ Դϱ? ǻ 忡 ȿ Դϴ. ׷ 丷 ˾ƺⰡ ƽϴ. ȿ ⵶(readability) Ǵ Դϴ. ׷ ⼭ 츮 غ մϴ. ȿ̳, ⵶ . ߿ ϳ Ѵٸ ⵶ ڽϴ. ֳϸ  α׷̶ ߿ и ľ ֱ Դϴ. α׷ ġ ڽ ˾ƺ ϴµ, ȿ ߽ ȣ ¥ Ҵٸ, ߿  ġڽϱ? Ʒ п 帮 ͽϴ. " ." б ߸ ߿ ġⰡ ϴ. ݱ 츮 ü Ǵ ͵̾ϴ. ׷ ߿ ū α׷ ¥ б α׷ ü Ұϴ. ȿٴ ⵶ ߾ ۼؾ Ѵٰ մϴ. ϴ б ȿ ʿϸ ġ ˴ϴ. ׷߸ α׷ ʿ ļ ֽϴ. ׷ б ؼ  ؾ ұ? ٷ "̸ "Դϴ. α׷ ¥ ̸ ֽϴ. ǥ ǥ ̸ Դϴ. տ ǥ "c, f, s" ̸ ϴ. ׷ ̷ ǥ ̴ ſ б ư ϴ. п a, b, x, y ̸ Դϴٸ, α׷ ƴմϴ. α׷ Ÿ ϱ Ŀó ̸ ª ٿ ȵ˴ϴ. ̸ ̸ __ ϰ ֵ__ մϴ. ٽ ؼ, ̸ ô װ  ־ Ѵٴ Դϴ. ΰ ¿ < 6> ٸ ü 'c, f, s' ǹϴ ְڽϱ? б ؼ ̸ ּ ̻ ǹ ִ ܾ ؼ Ͻʽÿ. Ʒ < 8> ʽÿ. < 8> źҸ ϱ (ǥ ̸ ) ---------------------------------------------------------- | centigrade fahrenheit length | centigrade := 500. fahrenheit := 32 + (9/5 * centigrade). length := 30 * (1 + (6.7e-6 * fahrenheit)). length. ---------------------------------------------------------- "c, f, s" Ǿ ִ ǥ ̸ ''(centigrade), 'ȭ '(fahrenheit), ''(length) Ÿ ֵ ̸ ƴ б ξ ϴ. 'centigrade' 'fahrenheit' ܾ Դ ĩ ư ְ, ܾ ǹ̰ ľϸ б ξ Դϴ. ۿ  ü  ǹ̰ پ , ڸ ״ ϴ ǥ ٿ Ǹ ξ б ֽϴ. < 8> "30" ź ó ̰, "6.7e-6" ź Ȯ Դϴ. ⿡ ̸ ٿ Ǹ ξ б ˴ϴ. < 9> ʽÿ. < 9> źҸ ϱ (б ) ---------------------------------------------------------- | centigrade fahrenheit length initialLength coefficient | centigrade := 500. " µ" coefficient := 6.7e-6. "źҸ Ȯ " initialLength := 30. "ȭ 0 ó " fahrenheit := 32 + (9/5 * centigrade). length := initialLength * (1 + (coefficient * fahrenheit)). length. ---------------------------------------------------------- < 9> ź ó ̸ Ÿ 'initialLength' Ȯ Ÿ 'coefficient' ǥ ߽ϴ. ׸ Ǯ̱ ޾Ƽ ǥ  ϴ Ȯ ϰ Ÿ½ϴ. ̿ Ǹ ƴ϶ 1 ڿ ٽ , ź 밡 ƴ϶ Ȳ ϴ Ȯ (coefficient) ȭ 0 ó (initialLength) ˸ ֽϴ. ------------------------------------------------------------- 1000 Ʈ ǻ "1000 Ʈ "̶ ȸ ֽϴ. ȸ  ־, ۷ Ǯ ϴµ, 1000 Ʈ ȴٴ Ģ ֽϴ. 2000~3000 Ʈ ߸ Ǯ ִ , α׷  ִ ⱳ η 1000Ʈ ǰ ֽϴ. ̸ ", ̴" ź ֽϴ. ׷ ̰ , ̷ , ġ⵵ ƽϴ. 츮 C ó ޵DZ б α׷Ӱ Ƿ ִٴ ߸ ־ϴ. ׷ ؼ б ư , ̰ ؼϸ鼭 ϴ. ̷ ⱳ ȿ 𸣰 ռ Ͱ ǰ ϴ. ڽ ĥ ˱ ư Ǵ 찡 ϴ. ư ڸԴϴ. ڽ ִ ״ ǥ ٷ α׷Դϴ. 밡 ǥ ϴµ, ̰ Դϴ. ̸ ִ б , ִ б ϴ. ̷ б Ѵٴ ִ ְڽϴ. ---------------------------------------------------------- 3.4.4. ------------------------- ƿ鼭 ڽ ݼϰ ־ϴ. '̳ ...' 'α׷̳ ...' ȸ˴ϴ. ׷ åϸ ƿ ǻ ͸ ׽ϴ. Կ ִ . " ! д ϴ ̾. 츮 ð . ڱⰡ α׷ ã ִٳ? !" ģ ̾ϴ. ݷ ģ ʹ ϴ. ʹ ؾ߰ڴٰ ϸ鼭 ûմϴ. 10 Ѱ α׷ ¥ 嵵 Ǽ ִٴ η 鼭.... ׷ϴ. Ǽ ϴ Դϴ.  óϴٰ ϰ Ǹ Ӹ ϴ. Ȱ Ǽ Ȯ ϴ. ׷ Ǽ ν Ƿ ϴ. 츮 α׷ӵ Ǽ ʴ´ٰ ϱ ϴ. ׷ ̷ α׷ӵ鵵 Ȱ Ǽ մϴ. ׷ ϴ 鼭 տ α׷ ִ (bug) ãƳ ָ ϴ. ʱ  α׷ ǰ ֽϴ. Ǹ α׷Ӵ Ǽ ʴ ƴմϴ. Ǹ ׷Ӷ α׷ ִ ãƳ ذ ִ Ѵٰ ڴ մϴ. α׷ ִ ߸ ''(bug) θ, ̷ ߸, ִ ۾ " "(debugging)̶ մ . ƹư Smalltalk ϴ ̳ α׷ ۼϴ ̳ Ȱ , ̷ ؼ ־ϴ. ׷  ؾ ұ? յ ϴ. ƺ ۿ ٸ ٴ Դϴ. е Smalltalk α׷ ϴ и ´ڶ߸ Դϴ. ׷ ʽÿ. ߰ߴٸ Ƿ ִ ȸ Ͻʽÿ. ׸ ãƳ ڸؾ߰ڴٴ ʽÿ. ġ ϴ е 𸣰 α׷ Ƿ ö ִ ߰ϰ Դϴ. Smalltalk ü ȭ ְ, ʿ 顪Ž(inspector), (debugger) õǾ Ƿ Դϴ. ========================================= ̹ 𿡼 츮 Smalltalk α׷ ۼ  Ǽ , ̷ Ǽ  ĥ ִ ؼ ˾ƺҽ . ׸ б ۼϷ  ؾϴ ؼ 캸ҽϴ. ؼ ʿ ߿ ־ մϴ. ʹ ٽ Smalltalk ü Ž ۵˴ϴ. ݱ α׷ӿ ü ȭ ϴ , ʹ α ϴ α׷ ü  ȭ ִ ؼ ˾ƺ ϰڽϴ. ϼŵ ϴ. ^^: ... :[亯] C/C++ ̴... ڷ: [146] :ȫ (Ϲ) 2000-03-10 14:37 ȸ:208 >׳ Ի԰ ˰ͽϴ.. ʹ Դϴ. Ÿ "츮 Ϻ  ̰ ִ"  ұ? C C++ ̵ Ȱϴ. ̾߱ϱ ƽϴ. ٸ C  ü з ϱ ؼ  C++Դϴ. C , C ̰ C++ ü ̱ ⺻ ٸϴ.  C++ Ϸ C ˾ƾѴٰ Ͻôµ, ׷ ʽϴ. C++ Ϸ ü з ˾ƾ մϴ. C C++ ư Դϴ. > ڼ ֽø ϱ.. ƽ ׷ ڼ 帱 ϴ. ֳϸ... >ƴ ̷ ڷִ°̶ ˷ֽø... Ƽ μ ż C++ ʸ å , ٴڿ ɾƼ ð о ֽϴ. ƴϸ ͳ ˻ "C++"̶ ġ 鸸 ڷᰡ ״ ű⼭ ãƺʽÿ. ׸ δٸ, δԲ C ؼ źź ôٸ C C++ ϴ ǹ̰ ְ, α׷  ϴµ C C++ ߿ ؾ Ѵٸ, ̸ ϴ ƹ ǹ̰ ϴ. 'Ͼ Ҿ  ̰ ?' . δ Cٴ C++ ϴ , װͺٴ ƿ Java Delphi, Ǵ Smalltalk ó ü Ÿ ִ  ö ϰ ͽϴ. ׷ δ, ! :[] Smalltalk #31 ڷ: [149] :ȫ (Ϲ) 2000-03-13 12:11 ȸ:66 Smalltalk #31 2000. 3. 13. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  3.4. , Ǽ!!! 3.5. ȭ â a3.5.1. ˸ ........ ======================================= 3. ü ä --------------------------- 3.5. ȭ â ~~~~~~~~~~~~~~ Smalltalk ȭ ýԴϴ. ڰ ǻͿ  ǻʹ ü ϰ Ÿϴ. 츮 ݱ ü (message) ü ڱⰡ ˾Ƶ ִ 쿡, ٽ ؼ ü ø  ó (method) ˰ ִٸ ൿϰ, ø ˾Ƶ 쿡 â(walkback window) ǥ߽ϴ. ̿ ȯ Smalltalk ϴ ſ ϰ, ū α׷ ſ ū ˴ϴ. ׷ ̷ α׷ α׷ӿ Smalltalk ȭԴϴ. α׷Ӵ ڽ α׷ ڵ ׷  ȭؾ ʿ䰡 ֽϴ. Windows κ ׸ ȯ(GUI) ȭ ڸ Ͽ ʿ α׷ Էϰ ˸ (message box) Ͽ α׷ ¸ մϴ. 츮 Smalltalk Ͱ  쿡 ȭ ڿ ˸ ڰ ʿ , κ (string) Է ִ ȭ ڿ α׷ ¸ ڿ ˷ ִ ˸ ڰ Դϴ. ȭ ڿ ˸ ڸ ؼ ӻ(View Composer) ؼ â ġؾ մϴ. ׷ ¹ްų â ׸ ġϰ, ϱ ؼ ü ŷӱ Smalltalk ȭ ڿ ˸ ڸ ̸ ʿ ֵ ϰ ֽϴ. 𿡼 츮 Smalltalk ̸ ϴ ˸ ڿ ϰų ִ ȭ ڸ  ϴ ؼ ˾ƺ Դϴ. ϰ ܼ ۿ ִ 븸 Ǵ α׷ ƴ϶ ڰ Է ڷ ٰؼ Ǵ 뼺 ִ α׷ ְ Դϴ. ׷ ˸ ں սô. 3.5.1. ˸ ---------------- Windows α׷ ϴٺ α׷ Ͼ Ȳ п ˷ֱ ؼ ڿ Ƽ ȭ鿡 ǥ ֽϴ. <׸ 3-24> " ǻ" â ǥ ˸ (Stp3-24.gif) <׸ 3-24> " ǻ" â ¿ A: ̺긦 Ÿ ˸ ڸ ֽϴ. 󸶳 ̷ Ǽ ϴ 𸣰 ڴ Ӹ Ǽ մϴ. :) ƹư α׷ ϸ鼭 ڿ ˷ ִٸ ˸ (message box) Ƽ Ÿ Ȯ ġ ˴ϴ. Smalltalk ̸ ȭ ڸ ü ٸ ֽ ϴ. 츮 "3.1" 𿡼 ˸(transcript) (#22)  ü ߽ϱ? , ٷ Transcriptϴ. ׷ 츮 Transcript nextPutAll: 'ȳϼ?' 丷 ϸ ˸ǿ ־ϴ. ̰ ˸ ü̱ Դϴ. Smalltalk ...? ׷! üԴϴ. ׷ٸ 츮 ˾ƺ ˸ ...? , ׷! ٷ üԴϴ. 츮 ˸ ڿ ø ؼ Smalltalk ˸ ڸ  θ ˾ƾ մϴ. ٽ ؼ 츮 ˸ ̸ ˾ƾ Ѵٴ Դϴ. Smalltalk ˸ ڴ "MessageBox" ̸ پ ִ. ٷ Դϴ. Smalltalk ˸ ڿ  ø ó "MessageBox" ̸ մϴ. ù ڰ 빮 ϱ ̸ и ū ǥ (global variable) ־ٸ ݱ IJ о̴ٰ ְڽϴ.( ū ǥ 𸣰 ٸ "3.2"(#24) ǵư ٽ ϴ ϴ. ^^:) ƹư MessageBox ˸ڸ Ÿٰ , ̸ Ϳ ô. ο ͸ ϳ Ϳ Ʒ 丷 ô. ׷  Ÿ? MessageBox MessageBox "MessageBox" Էϰ ۼ踦 丷 ô  ƽϱ? ƹ ȭ "MessageBox" ڰ ״ Ÿ ϴ. ׷ "Transcript" ߽ϱ? ʴ´ٸ ô. Transcript a TranscriptShell "Transcript" ̸ "a TranscriptShell"̶ ü پ־ . ׷ "MessageBox" ǥ ״ "MessageBox"Դϴ. "MessageBox" (class) ̸̶ ֽϴ. 츮 Integer #superclass ø " "  ־ϴ. MessageBox ̸̶ #superclass ø ˾Ƶ Դϴ. ׷ ׷ Ϳ ô. Ʒ 丷 ؼ ʽÿ. MessageBox superclass Object ôٽ MessageBox "Object" ֽ ϴ. 츮 ٷΰ ƴ ü ؼ  ߴ Ͻ ϱ? "3.3"   ߽ϱ? , #new ø ־ϴ. #new "ο ü " ̱ MessageBox #new ø ˸ ڸ ϴ. ׷ ˸ ڴ ڰ Ȯ ü̱ #new ø ؼ ü ʰ ø ؼ ü  ֵ ð غǾ ֽϴ. ġ 츮 Ÿ "Color" #new ø ʰ ٷ "Color red" ø ü  Ͱ ϴٰ ǰڽϴ. ˸ ڸ  Ÿ ˾ƺ ˸ ڿ  ִ ˾ƺ ϰڽϴ. ˸ ڴ ũ  ֽϴ. * (information box) "i" (icon) ް Դϴ. ܼ α׷  Ȳ ڿ ϱ ̴ Դϴ. * (warning box) ﰢ "!"  ִ Դϴ. Ȳ ɰ 𸣱 Ǹ ̶ Ÿϴ. ڿ ϴ 쿡 ڸ մϴ. * (error box) ׶̿ "X"ǥð Ǿ ִ Դϴ. α׷ ߰ų Ȳ ü ſ ɰϿ ڰ óؾ մϴ. κ ڰ Ÿ Ǹ ſ ɰ Ȳ̱ Ư ó ؾ մϴ. * (confirm box) "?" ׷ ִ Դϴ. α׷  Ϸ ڿ Ȯ ޱ ؼ մϴ. ٸ ˸ ڿʹ ޸ "", "ƴϿ" ߸ ־, ڰ ش Ȳ ޾Ƶ , ź ֽϴ. ˸ ڿ ø ̸鼭 "' "ƴϿ" ߸ ִ Ȯ ϰ ֽϴ. ׷ ⼭ Ϲ ̴ ˸ ڸ Դϴ. Ϳ 丷 ԷϿ ô. MessageBox notify: '۾ ϴ.' caption: '˸' ϸ <׸ 3-25> ˸ ڰ Ÿ ϴ. <׸ 3-25> #notify:caption: (Stp3-25.gif) ˸ ڰ Ÿ "Ȯ" ߸ ֽϴ. ű ϱ? ̷ MessageBox #notify:caption: ø ڸ  ǥ ݴϴ. ⼭ #notify:caption: 踻 (keyword) ִ '踶 '(keyword message)ε "notify:" ˷ ٷ , "caption:" ڿ ˸ ٷ ˴ϴ. ڵ ? MessageBox warning: '׷ .' caption: '' <׸ 3-26> #warning:caption: (Stp3-26.gif) <׸ 3-26> ڰ Ÿ ֽϴ. "warning:" ڿ "caption:" ڿ ָ ˴ϴ. ڵ ! ֽϴ. MessageBox errorMsg: '߸ϼ̽ϴ.' caption: '' <׸ 3-27> #errorMsg:caption: (Stp3-27.gif) ? ̹ ȭ ν ڿ ڸ ϰڽϴ. MessageBox confirm: 'ұ?' caption: 'Ȯ' <׸ 3-28> #confirm:caption: (Stp3-28.gif) ٸ ȭ ڵ Ѱᰰ "Ȯ" ߸ ־µ #confirm: caption: ÷ 쿡 "" "ƴϿ" ߸ ֽϴ. , , ڿ ߰ ϳ پ ֱ ׸ ߿ ʽϴ. ׷ ó "" "ƴϿ" ߰ ֱ ڰ ߸ ˾ƾ ʿ䰡 ֽϴ. #confirm:caption: Ǹ ڰ ڰ  ߸ Ѱݴϴ. ׷  Ʒ 丷 ؼ ô. (׳ ϴ ƴ϶ Դϴ.) MessageBox confirm: 'ұ?' caption: 'Ȯ' true "" false "ƴϿ" MessageBox üԡ'' üԴϴ١ #confirm:caption: ø Ǹ ̿ ڰ "" ϸ "true"() ѱ , "ƴϿ" ϸ "false"() ѱϴ. ߿ α׷ Ǵ ִ ø ٵ, ø ϰ Ǹ ÿ α׷ 帧 ٲ ֽϴ. ƹư ڿ ڰ  ߸ ִٴ ˾Ƶθ ǰڽϴ. ------------------------------------------------------------- (class) ü(object) Ǹ '' 'ü' ȥϽô и 𸣰ڽ . Ӹ ؼ ⼭ ü ؼ ϰ Ѿ ڽϴ. (class) Ӽ ü ѵ մϴ. "" ü Դϴ. 1, 2, 3, -1, -2 üε ü ""(Integer) ֽϴ. 'ƹ', 'Ӵ' (String) ֽϴ. ü ֽϴ.  ϴ ü "ü"(instance) θٴ ̹ "2.2.3"(#8) 𿡼 ٷ ֽϴ. ü ݴǴ ̶ ص մϴ. ׷ Smalltalk üԴϴ. ʹ ϱ? ׷ Smalltalk ⺻ Ģ̰ ߿ϱ ڰ ڲ Դϴ. Smalltalk ü̱ (class) ü(object)Դϴ. װ 丷 ֽϴ. (3 class) isKindOf: Object true 丷 "3" #class ø "SmallInteger"( ) ̸ ˴ϴ. ᱹ "SmallInteger" #isKindOf: ð Ǵµ, "SmallInteger üΰ" Դϴ. Smalltalk ߽ϱ? и '´'(tru) ϴ. Smalltalk ᱹ ü Դϴ. ׷ ü̱ ø ֽϴ. ׷ ü ˾Ƶ ִ ø 'ü '(instance message) ϰ ˾Ƶ ִ ø ' '(class message) θ Դϴ. 츮 ȭ ڸ ؼ #notify:caption, #warning:caption:̳ ο ü ؼ #new, ˾Ƴ ؼ ߴ #superclass ˾Ƶ ִ Դϴ. ݸ #+, #- 㸶 ó #size, #at:, #between:and: ü ̱ ü ð Ǵ Դϴ. ٷΰ(literal) ƴ ü ؼ 츮 ü ø ϴ. #new 󼭴 ٸ ø ִµ, ִ MessageBox #notify:caption: ÷ ο ˸ ڸ  , Color #red, #green, #blue ø ο ü  ֽϴ. ᱹ ̰ ü ϳ . ׷ٸ ⼭ е ñ ϴ Դϴ. ü ִٸ, "  ִ°" ϴ Դϴ. 丷 ô. Integer class Integer class "Integer" Ÿ Դϴ. ׷ #class  ϱ ״ "Integer class" Ѱϴ. "Ǯ "(metaclass) ֽϴ. "Ǯ " " " ֽϴ.  ִٸ, "Ǯ " ü(the instance of class of class = the instance of metaclass) Դϴ. Ǯ Ǯִ մϴ. ׷ϱ "Integer"  ൿ Ϸ "Integer class", "Integer" Ǯ ø ޾Ƽ óմϴ. Ǯ ؼ Ϸ ð ʿ Դϴ. Ư C++, Java, Object Pascaló ü  ƴ ˰ ִ ̶ Ӹӿ dz ָĥ Դϴ. ƹ ư "Ǯ " ִٰ սô. ߿ ü, ׸ ü 信 ؼ ͼ Ǯ ؼ Դϴ. ᱹ , Ĵ ִµ, Smalltalk ̷ ϰ ̿ϰ ֽϴ. - ü̹Ƿ ø ִ. - ݴǴ 'ü' ƴ϶ __ü__̴. ϰ 򰥸 Դϴ. ݴ ü ƴմϴ. ---------------------------------------------------------- ݱ ˾ƺ ϸ ϴ. MessageBox ˾Ƶ ִ ---------------------------------------------------------- MessageBox notify: promptString caption: titleString â "titleString" ̰ "promptString" ǥϴ " "(information box) ȭ鿡 ǥѴ. MessageBox warning: promptString caption: titleString â "titleString" ̰ "promptString" ǥϴ " "(warning box) ȭ鿡 ǥѴ. MessageBox errorMsg: promptString caption: titleString â "titleString" ̰ "promptString" ǥϴ " "(error box) ȭ鿡 ǥѴ. MessageBox confirm: promptString caption: titleString â "titleString" ̰ "promptString" ǥϴ " "(confirm box) ȭ鿡 ǥѴ. "" "ƴϿ" ߸ Բ ְ, ڰ ߰ ""̸ ''(true), " Ͽ"̸ ''(false) ѱ. ---------------------------------------------------------- ݱ ˸ ڿ ϴ ϴ ˾ƺҽ ϴ. ؼ ˸ ڸ µ ͼ սô. ڿԼ Է¹ ִ Է ڿ ؼ ˾ƺô. #32 ... :[] Smalltalk -- () ڷ: [150] :ȫ (Ϲ) 2000-03-13 12:11 ȸ:64 Smalltalk +---------------------------------------------------------------- | <> >: ǰ ִ | !: ڷ Ǵ | *: ִ | <#ȣ>: ȣ | | | 0. 'Smalltalk ' ϸ鼭 <#0> | | | 1. Smalltalk Ұ | | 1.1. α׷ α׷ <#1> | | 1.2. Smalltalk ġ <#2> | | 1.3. Smalltalk α׷ | | 1.4. غؾ ͵ <#3> | 1.4.1. Dolphin Smalltalk ϱ | 1.4.2. ޱ | 1.4.3. ۲ ϱ | | 1.5. Smalltalk ȯ ѷ <#4> | 1.5.1. ˸ | 1.5.2. | 1.5.3. ü Ž | 1.5.4. Ž | 1.5.5. Ž | 1.5.6. ٷ Ž | 1.5.7. âʾ | 1.5.8. ڿ Ž | 1.5.9. â ⰳ | | | 2. ü ̾߱ | | 2.1. ü? <#5> | | 2.2. | 2.2.1. 丷 ϱ <#6> | 2.2.2. ! ! ! | 2.2.3. ü | 2.2.4. ÿ Ͽ... | 2.2.5. 켱 | ! 2.2.6. ! ! ! <#11> | | 2.3. ü | ! 2.3.1. Ž ϱ <#13> | ! 2.3.2. ü | ! 2.3.3. ڿ | 2.3.4. ãƼ... <#17> | ! 2.3.5. , , ׸ ٷΰ <#19> | | 2.4 <#21> | 2.4.1. | 2.4.2. ˾Ƶθ ͵ | 2.4.3. | | | > 3. ü ä | | ! 3.1. ˾ƺ, ˸! <#22> | 3.1.1. ˸ ü - Transcript | 3.1.2. ˸ǿ ü ᳻ | 3.1.3. յ | | 3.2. ǥ λ | 3.2.1. ̸ ? <#24> | 3.2.2. ٷΰ ǥ | 3.2.3. ǥ <#25> | 3.2.4. ǥ Ͽ | ! 3.2.5. ū ǥ <#26> | | ! 3.3.  | 3.3.1. ǥ <#27> | 3.3.2. ٷ̿ ؼ | 3.3.3.  <#28> | | ! 3.4. , Ǽ!!! | 3.4.1. Ϸ <#29> | 3.4.2. Ǽ, Ǽ | 3.4.3. ȿ ⵶ <#30> | 3.4.4. | | ! 3.5. ȭ | 3.5.1. ˸ <#31> | 3.5.2. Է | * 3.5.3. Է | 3.5.4. : ̸ غ! | 3.5.5. : «! | | 3.6. ׸ ׸ô. | | 3.7. | | | 4. Ž | .... +---------------------------------------------------------------- :[˸] Smalltalk ڷ: [151] :ȫ (Ϲ) 2000-03-13 12:15 ȸ:66 ȳϼ? ȫ ȵ巹Դϴ. ׻ оֽô е鲲 ϴٴ 帮ڽϴ. ̹ ˷帱 Ȳ "Smalltalk " ʿ Դϴ. Smalltalk ʴ 5 Խù ö ִµ, ѱ ̵ ٲٴ ٶ-, Ŀþ̵ ٲµ.. ̷ -  ָ ԰ ִٰ, OOT  ¼ 浵 Ű Ƽ -ᱹ - ƿ ʸ '150' ۿ ġϷ մϴ. ʴ '150' ۿ ø Դϴ. ñ ٶ󱸿, ôµ ־ 帰 帳ϴ. ̵ ϰ ؾ߰ڳ׿. ... :) ׷ ȳ. :[] Ʒ, Smalltalk ٸ ڷ: [154] :ȫ (Ϲ) 2000-03-21 12:02 ȸ:86 ȳϼ? ȫ ȵ巹Դϴ. Smalltalk ϴ 忡 Բ ֽ Ե ô Ǿϴ. ϰ κе ְ ׷ κе ִµ, οؼ  ҰԿ. ---------------------------------------------------------------- ׷쿡 ۵ ɴϴ. ׷쿡 ȭ Ǿ ° ϴ ִµ ϰ ´ ִ ⵵ ϴ.. ڸ ٵ簡 , DB ؼ ٵ簡 ֵ  ׷ٵ... ---------------------------------------------------------------- Smalltalk ַ ƴմϴ. ׷ Բ Ͻ ƴ϶ ٺ ִ ̰, κп ̷ ֽϴ. Ͽ ؼ Ʒ ؼ ۿ ֵ, ̹ Smalltalk Windows Ÿ ٸ ȯ濡 ̽ĵ ֵ Ǿ ־ϴ. ٸ â 쿡 Smalltalk ü (image) ° ٷ ʿ κе , ̾Ƴ(image stripping) Ͽ α׷ ʴ ü (class) ȯ ̾Ƴ Ʈ ̽ϴ. Dolphin Smalltalk VisualAge for Smalltalk ̷ ̾Ƴ⸦ մϴ. Smalltalk-MT Multi-thread ϰ, ٸ Smalltalk ޸ Ͽ ϴ native-compiler ִٴ Ư¡ ֽϴ. Squeak ʾƼ 𸣰ڴµ, Smalltalk ڵ忡 ϴ Cڵ带 ֱ ʿϸ ̷ ؼ Ͽ Դϴ. ϰ ִ Dolphin Smalltalk ADK(Application Development Kit) Ͽ ϴ. ͺ̽ ؼ ذ ֽϴ. Dolphin Smalltalk Smalltalk-MT, VisualAge for Smalltalk ODBC ؼ DB ֱ , ODBC ̹ ִٸ 󸶵 ͺ̽ ֽϴ. Dolphin Smalltalk 쿡 ActiveX ü Ƿ, ADO ֽϴ. ADO Ҹ غ ʾƼ ٷ ADO ADO ϴ ٷ̰ ðɷ ˰ ֽϴ. Smalltalk ȸ OODBMS ϴµ, ü ϴµ ־ ̷ OODB ٹ ִٰ մϴ. MineStore Dolphin Squeak ϴ ǥ OODB̸, OmniBase Dolphin Ѵٰ ˰ֽϴ. Ÿ 쵵 OODB Ѵٰ ˰ ֽϴ. Dolphin Smalltalk Database Connection OmniBase Ͽ DB մϴ. Smalltalk ̵ ؼ ƴմϴ. ٸ ö '̵鵵 ֵ ' Դϴ. ̴ ' ĽĮ' Delphi ¸ ̷ ִ ׸ ־̴ ƴմϴ. е Visual Basic BASIC ǻ ʺڸ ϱ ؼ , 8Ʈ Ǹ ü 븩 ֵ ɾ ־ϴ. ---------------------------------------------------------------- ϰ ̴ ȸ簡  ׷ .. üθ ̶ ڹٺ . ڹٿ ̴ ڹٴ ̶ δٴ Ű ȸ糪 ȸ簡 ڻ ߿ ʴ ٴ .. ---------------------------------------------------------------- ԰ Դϴ. ϵ ־ Forth  , " ʸ ĭ Turbo Forth ٸ Forth 簡 ٽ ̴" Ͻ ־. "Turbo Smalltalk" "Visual Smalltalk"(ũμƮ) ٸ Ƹ Smalltalk Դϴ. Oracle̳ Ÿ ٸ ȸ翡 Smalltalk α׷ Ѵٸ Smalltalk ˷ Դϴ. ׷ ϰԵ Smalltalk ַ ν, ü⿡ ޵Ǵ ġ ֽϴ. ̴ Ư 츮 쿡 մϴ. Smalltalk ϴ , ϰ ִ Dolphin Smalltalk Object-Arts 翡 Դϴ. ʿ ǻ Smalltalk ϰ 鿡 ˸ Դϴ. 츮ó Microsoft 鸸 ַ ̷ ִ 񱳵ȴٰ ֽϴ. · ַ ̴  C/C++ Sun Java Űܰ ֽϴ. ׷ ׷ٰ ؼ Smalltalk ٰ մϴ. Smalltalk ׷ ̿ؼ ̶ Smalltalk ϰ, ׷ ùٸ ü ִٸ, ׸ ڽ Ʈ Ȱ ִ ִ ٸ ڽϴ. Ʈ ü Smalltalk ̷ٸ . :) ---------------------------------------------------------------- Smalltalk ܼ ü ϰų ˴ϴٸ. ٰ ϴ ƿ... Ҷ µ Ϸ ϸ Ұ ٴ ... X ؼ ⵵ , ü ϱ⵵ ׷ ü Ƴ ׷ ͵ CORBA  ִµ ε Ŭ ... ׷  ص ᱹ ٽ Ǵ... ⵵ ѵ.. ؼ .... ȯ ؾ Ѵٴ .. ʹ ݴǴ Դϴ.... ȯ ؼ ݵ ° ȯ ü ߿Ѱ... ǥ ε... Ư 鼭 Ⱦ̴° .... ̻ ̾ϴ..... ---------------------------------------------------------------- .  ּ̽ϴ. ó Smalltalk 3 ̾ϴ. ׷ ϰ Ѿϴ. Smalltalk "Smalltalk Express" Ͽ, ϵ ƿ , GUI ־ Դϴ. Smalltalk ̷ ִ ȯ ܺ DLL θ ִ ־, ÿ Smalltalk ϴ. ׵ ׷ 32Ʈ Windows 95/98 ü迡 16Ʈ Smalltalk ٴ Ű ʾƼ Դϴ. ׷ 98 Dolphin Smalltalk ˰ Ǹ鼭 ݾ ޶ ؽϴ. ٸ 99⿡ å Ʈ 6 Smalltalk Ѱ ƽ, ᱹ Dolphin Smalltalk ϰ Ǿϴ. . ִ Smalltalk ξ ϼ ־ϴ. ڷǿ ִ Dolphin Smalltalk 2.1 Դϴ. 98⿡ SmalltalkȯԴϴ. Dolphin Smalltalk 2.1 Ǹ Ǹ ִٰ մϴ. ׷ ȯ ̿ ִ ȯ ſ 幰ٰ մϴ. ׷ Dolphin Smalltalk 3.0 ؼ , '~'ϴ ź簡 . Windows98 ִ κ Ʈ ϰ ־, ˾ƺ ȯ ŷǰ ϴ. LiveUpdate Smalltalk ȯ ü ġ ִ б̾ϴ. ƿ Database Connection, ADK, Web Development Kit, Socket Connection ٷ̸ Բ ߽ϴ. ̷ Բ ϸ ſ ϱ ε, ϳϳ ϰ ֽϴ. ÷- α׷ ġϸ Dolphin Smalltalk ø ֽϴ. ADK ؼ ְ. Dolphin Smalltalk Windows ü ϰ, Windows API ȣ Ӹ ƴ϶, cdecl, stdcall, safecall ȣ ϴ ܺ DLL Լ ֽϴ. 2.1 ݾ COM/OLE ȮϿ 3.0 ActiveX Ʈ ҷͼ ְ Ǿϴ. ߰ GIF, JPG, MP3  ü谡(Ȯ Internet Explorer Windows Media Player) ϴ ǥ ɵ ״ ϰ ֽϴ. ̴ Smalltalk ϴ. , и Smalltalkȯ C/C++̳ 'Ѵ'ϴ ȸ а ִ ٸ 񱳰 մϴ. ̴ Forth ϴ. ׷ ᱹ Forth ýۿ ιۿ ̱Ⱑ ̾, ׷ з ־ϴ. ׷ Smalltalk Forthʹ ٸ Ȳ ֽϴ. ý ü GUI źϰ Ͷ, MS-DOS ư Smalltalk/V 쿡 ü â ý ־ϴ. (workspace) ü鿡 (message) ν ü ȭϰ Ž(Class Hierarchy Browser) Smalltalk  ִ ˻ϰ ο , ̷ ǽð ֽϴ. Ž(Method Browser) Ͽ Ư ǿ ´ , Smalltalk ȸ鸶 ϴ Ư ϸ α׷ ⿡ ȯ̶ ϰ ͽϴ. C/C++, Java, Delphi ִ ߿ 70% Smalltalk ְ, Visual Basic ִ ߿ 90% Smalltalk ֽϴ. ܼ ' ִ' ƴ϶ ' ִ' Դϴ. и Smalltalk ӵ ϴ. ׷ Squeak, Smalltalk-MT, Dolphin Smalltalk , Dolphin Smalltalk 쿡 Windows  ü迡 ϴ ֽ κ ״ ȭ ֽϴ. Object-Arts 뿩ۿ Ǵ Dolphin Community ̷ ִ Smalltalker Dolphin Smalltalk ־̽Ŀ Ҹ ȯ Ǿϴ. DirectX ٷ Pre-release õǾ Ƿ, DirectX α׷鵵 Դϴ. Smalltalk óϷ ʽϴ. Բ ϼ̵ C κ и ֽϴ. C θ ʿ  ؼ ڵ ߽ϴ. Smalltalk ̷ α׷ ϴ. и C κ ִٸ, ̷ κе DLL  Smalltalk ѹϴ. θ ؼ COM ǰ ִٸ Smalltalk ȾƼ ٷ ü Դϴ. Dolphin Community "lan Bartholomew" "Smalltalk ǰ ִ̾ " ߽ϴ. մϴ. ó C++ Ἥ ϴ ͺٴ Smalltalk ʿ ü α׷ 븦 , ʿ DLL̳ ܺ ̽ ؼ ̷ ͵ ξ 꼺 ֽϴ. Java  JNI ԰ մϴ. " Smalltalk!" ϴ ý Ƴ ϴ. װ Smalltalk ַ ̱ ̱⵵ , ׸ŭ ٸ ͵ ģȭ ߿ϴٴ Դϴ. Delphió ĽĮ 鼭 C/C++ ʿ䰡 쿡 ֽϴٸ, ϰԵ Smalltalkδ ذس մϴ. ׷ Smalltalk ٸ ͵ Ȱ ֵ ̶ մϴ. ׷ ⼭ Կ , Smalltalk ȯ Ͻ ߴ ϴ ̴ϴ. Smalltalk ý ϱ ܾմϴ. ִ Smalltalk Delphi Visual Basic, JBuilder ڰ ֽϴ. Enterprise Editionó ϴ Smalltalk ſ ִϴٸ,  Windows α׷ ִ ̶ մϴ. Smalltalk ȯ 翬 𸨴ϴ. Borland ϴ C++ Ϸ 쿡 ֺ ȯ ־ϱ? ƹ͵ ϴ. ̷ Smalltalk Ѵٴ ϴٰ մϴ. Smalltalk ɾ ϴ. ׷ Smalltalk ý۰  Ư ° ü̶ ö ؼ ε Դϴ. ⼭ Smalltalk ¸ ϴ ͵, ͵ Ͽ ˷帮 ϴ , Smalltalkε α׷ ϰ, Ư α׷ ϴ Ʋ ӿ, ִ Ǹ ߵ Ӱ ϸ鼭 α׷ ͵ ־ ڴٴ Դϴ. װ 𸣰Խϴٸ, ߴ ʰ ø ִ Ѵٸ, ο ϸ ƴ Ŷ մϴ. ׷ оּż մϴ. ׸ Բ Ư 帳ϴ. ׷ ȳ 輼. :[] Linux GUI  ? ڷ: [156] :ȫ (Ϲ) 2000-03-23 13:48 ȸ:63 ȳϼ? ȫ ȵ巹Դϴ. ϰ ο Ϳ ñϰ ϰ ° ϴ. ׷ 鿡 Ʒ ÷ֽ ۵ ϴ. Smalltalk ǰ ذ ϴ. ''. װ ãⰡ ƴٴ մϴ. ׷ Ÿ ϴ. OOT е OOPL ؼ ɵ ״ Smalltalk ؼ ˰ð, ٸ 𸣴 ¹Դϴ. װ ٷ Smalltalk ׸ŭ ٴ, Smallltalk Ȱ ׸ŭ ٴ ǹ̰. Ͻ Python, Perl, Tcl ֽϴ. ׷ Smalltalk ׷ ٴ ̶ ˾Ƶ ǰ? ̰ ᵵ ׸, ᵵ ׸... ׷ ߽ϴ. ׷ Smalltalk ɼ ֽϴ. α׷ ַ BASIC̾ϴ. ׷ٰ ȭ α׷ ޵Ǹ鼭 ĽĮ ַȭ  Ǿϴ. ߿ C , ü ԵǸ鼭 C++ ϴ. Java . ׷ ŸԵ, Java C++ Smalltalkŭ üԴϴ. Object Arts Andy Bwoer ̷ ֽϴ. "ȿ Ÿؼ ܳ ü ____ ü ʴ. ̷ ؼ ü Ѵٴ ü ǹ 𸥴." ؼ, ü ¿ ü ϰڴĴ . ϸ ִ Դϴ. ׷ Pascal ׷, Smalltalk OOPL ϴ л鿡 Ǿ ϴ ϴ. ᱹ Smalltalk 츮 󿡼 ִ ƴұ մϴ. Ե ̰, Smalltalk ϰ C++̳ Java ð 180 ٲϴ. ̸׸ C++ virtual Լ ʿ ؼ ÿϰ ִ ϴٸ, Smalltalkó ü ϰ ǥϰ ִ  C++ ϰ Ǹ ̰ ٰɴϴ. ƹư Smalltalk ã , ׸ 鿡 Smalltalk ˸ Smalltalk ִ е ö ׿. .. ̾߱Ⱑ ʹ ٸ µ, Linux X Smalltalk GUI ۾ °ǰ? Squeak ұ , Dolphin ˰ ִ ¿ Squeak ΰ... ׸ ⵵ ׷. Smalltalk α׷ (framework) ִµ, MVC, MVP ͵ װ̶ ˰ ֽϴ. Squeak ̴ٸ  α׷ ¥ ñմϴ. Tcl ̿ؼ GUI ִٸ, Smalltalk ̿ؼ и ϴµ. ƹ Windows迭 ٺ δ ̶󼭿. Բ Ұ ֽʽÿ. ׷ٸ ΰ ǰڽϴ. ׷... Ĩϴ. :[亯] ġ ġ ڷ: [161] :ȫ (Ϲ) 2000-04-06 19:29 ȸ:85 ȳϼ? ȫԴϴ. ġ ڿ ġ ڴ prefix operator, postfix operatorԴϴ. κ ̸ ' ǥ ', ' ǥ ' ϰ, ѱ  'հ ', 'ް ' θ ֽϴ. Ǿ ̴ ڿ ġ 踦 Ÿ ϴ Դϴ. 츮 ڴ ġ , ǥ , Ӱ , infix operator θϴ. 3 + 4 (2 + 5) / 7 ̿, ߰ ڰ ġǾ ֽϴ. ǥ ڴ 츮 п ܾ ǥ̱ ϱⰡ ٴ ֽϴ. ׷.. 3 + 4 * 5 쿡 "+" ؾ , "*" ؾ ؾ մϴ.  ڸ ؾ ϴµ, ̰ ' 켱'(operator's precedence)Դϴ. ǥ ڸ ǻͿ óϷ 켱 ִ ʿմϴ. ׷ ڸ ãƺ ̰  켱 ˻ؼ ״ ϴ Դϴ. 켱 ٲٷ ȣ ϸ ˴ϴ. ǥ ڴ ڰ տ ɴϴ. + 3 5 3 5 ϴ Դϴ. ׷ ڰ ȥ ϱ ؼ ȣ ݵ ٿ־ մϴ. (+ (* 2 5) 8) ǥ ٲٸ (2 * 5) + 8 Դϴ. ǥ ڴ LISP  մϴ. ȣ Ƽ ϱⰡ , ǻ 忡 ǥ ں óϱⰡ ܼϴٴ ֽϴ. ǥ ڴ ڰ ڿ ɴϴ. 3 5 + 3 5 Ѵٴ ǹԴϴ. ǥ ڴ 츮 ҽϴ. 3 4 * 2 / 10 - 5 + 츮 Ǯ "3 4 ϰ 2 10 5 Ѵ" ֽϴ. 3 4 5 + * "3, 4 5 ؼ, Ѵ" ˴ϴ. 2 5 4 7 * + - ̰ 2, 5, 4 ĥ ϰ, , " ֽϴ. ġ ڴ 켱 ȣ ʿ䵵  ſ , ǥĺٴ Դϴ. ǥ ַ Forth Stack  մϴ. , ڶ ϸ ̿ ְڴµ, C/C++  ؼ ϴ 찡 ֽϴ. C++ ִ ++/-- ڴ ǥ ǥ⸦ ֱ Դϴ. i++ ̳ ++i Ȱ i 1 մϴ. i-- --i Ȱ 1 ϴ. ׷ ٸϴ. a = 3; b = a++; // a = 4, b = 3 b 3 ϴ. ֳϸ a b ++ ϱ Դϴ. a = 3; b = ++a; // a = 4, b = 4 a, b 4 ˴ϴ. b a ֱ ++ ߱ Դϴ. ̿ ++/-- ڴ ġ, ġ ޶ ſ ϰ մϴ. ߸ б ư ϰ ϴ ϴ. ϸ, Ϲ ǹ̿ ڿ 踦 ϰ, C/C++ (++ --) ġ ȭ Ÿ մϴ. ΰǴ Turbo C ̶ å մϴ. :[] Smalltalk #32 ڷ: [162] :ȫ (Ϲ) 2000-04-12 19:14 ȸ:71 Smalltalk #32 2000. 4. 12. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  3.4. , Ǽ!!! 3.5. ȭ â 3.5.1. ˸ b3.5.2. Է ........ ======================================= 3. ü ä --------------------------- 3.5. ȭ â ~~~~~~~~~~~~~~ #31... 3.5.2. Է --------------------- 츮 ǻ ¸ Ÿ ִ ˸ (message box) Smalltalk  ٷ ؼ ˾ƺҽϴ. ʹ α׷ ϴ ڽ ϴ Է ִ Է ڿ ؼ ˾ƺ Դϴ. Smalltalk ⺻ ϴ Է»ڴ ũ ִ , Է ִ " Է "(string prompter) ־ ߿ ̻ ִ " Է "(list prompter) װԴϴ. Է ں ˾ƺô. ˸ ڿ "MessageBox" ̸ پ־ϴ. 츮 ο ڸ ؼ #notify:caption: #warning:caption: #errorMsg: caption #confirm:caption: ø ߽ϴ. Է ڸ ٷ ü  ̸ پִ ˾ ʿ䰡 ֽϴ. Է ̸ "Prompter"Դϴ. Է ڿ ø ؼ "Prompter" ̸ ؾ Ѵٴ Դϴ. ׷ ˸ ڸ "Prompter" Ȱ ô. Prompter Prompter Ϳ 丷 Էؼ (display it) "Prompter" ̸ ״ Ÿϴ. ̴ "Prompter" ܼ ü ̸ ƴ϶ (class) ̸ 𸥴ٴ Դϴ. Prompter #superclass ø ˾Ƶ Դϴ. Prompter superclass ValueDialog , 츮 Prompter #superclass ø ˾Ƶ, ڽ ValueDialog( ȭ ) Ʒ ߽ϴ. ȭ (ValueDialog) α׷  Է¹ ִ ȭ ڵ Դϴ. 츮 ϰ ִ Է ڵ α Է¹޴µ DZ ValueDialog ƷԴϴ. ׷ Prompter (hierarchy) ؼ ¤ ö ô. ValueDialog superclass Dialog Dialog superclass Shell Shell superclass CompositePresenter CompositePresenter superclass Presenter Presenter superclass Object Object superclass nil ٷ "MessageBox" ξ ٷ ֽ ϴ. ValueDialog ü ȭڸ Ÿ "Dialog", α׷ Ѹ "Shell" ֽϴ. ؼ ö󰡴 ʴ "CompositePresenter"( Ǯ̲) "Presenter" (Ǯ̲) ħ ü Ѹ "Object" ̾ϴ. 캻 ٿ Dolphin Smalltalk "Prompter" ׷ "MVP"(Model-View-Presenter) Ǿ ֽϴ. Ǯ̲ (presenter) α׷ (model) ӻ(view) Ͽ ü α׷ ϴ մϴ. ƹư "Prompter" ̷ "MVP" Ǯ̲(presenter) Ϻζ ͸ ϸ Դϴ. ⼭ 츮 "Prompter" Է ڶ ͸ ˾Ƶθ ǰ, ִ ǹ̰ ִ ڼ ʿ䰡 ϴ. ׳ "Prompter" Ǯ̲ ϸ Դϴ. MessagBox 츮 (class message) ˸ ڸ ó "Prompter" ڽ ˾Ƶ ִ ø Է»ڸ մϴ. Ϳ Ʒ 丷 Էϰ (evaluate it) ʽÿ. Prompter prompt: '̸ Էϼ' caption: '̸ Է' <׸ 3-29> #prompt:caption: ǥ Է (Stp3-29.gif) 丷 Էؼ <׸ 3-29> Է ڰ Ÿ Դϴ. â ϳ Էĭ(edit box) ȿ Է ٸ Ŀ ڰŸ ֽϴ. ⿡ ̸ ְ ۼ踦 ô. "ȫ"̶ Էϰڽϴ. ̸ Էϰ  Ǿϱ? , ڰ ϴ. ׷ ͸ ƹ Ÿ ʾҽϴ. ü  ϱ? Prompter #prompt:caption:̶ ø <׸ 3-29> Է ڸ ǥմϴ. ⿡ ڰ  Է ڴ #prompt:caption: Ĩ . ν ڰ Է Ѱϴ. Smalltalk ü ø __ݵ ǵƿ´ٴ __ Ͻ ϱ? 츮 Է ڵ Է¿ Ͽ ϴ. ׷ 츮 丷 ϱ⸸ ʾ ƹ Ÿ Դϴ. , 丷 ô. Ʒ 丷 ۼ踦 ؼ ʽÿ. Prompter prompt: '̸ Էϼ' caption: '̸ Է' 'ȫ' ó Prompter ٽ #prompt:caption: ø Ƚϴ. Է ڰ Ÿ ڽ ̸ Է ڿ ۼ踦 ϴ. ڰ 鼭 Է Ϳ ǥõǾ ִ Ȯ Դϴ. <׸ 3-30> #prompt:caption: ø (Stp3-30.gif) ̷ Prompter #prompt:caption: ø Է ڸ ְ ⿡  Էϸ Է ѱ ˴ϴ. α׷Ӵ ̷ Էµ ̿ؼ α׷ ڷ ̿ϸ Ǵ Դϴ. ------------------------------------------------------------- 'ϱ' '' Ȥó ؼ Ӵϴ. Smalltalk 丷 ϴ ֽϴ. 'ϱ', '', 'Žϱ' ٷ װԴϴ. ̴ ̹ "ù° " ֽϴ. ׷ ȥǽô е ؼ ٽ ϰ Ӵϴ. * ϱ(evaulate it): 丷 ϱ⸸ ϴ . 丷 ڿ . * (display it): 丷 ڿ ǥ . 丷 ̰ ä ŸǷ, ʿ ۼ踦 ̿Ͽ ִ. * Žϱ(inspect it): 丷 ڿ ü 'ü Ž'(inspector) 鿩 . Ž ȿ ü ° ǥõȴ. 丷 "Workspace" ޴ ִ "Display it", "Evaluate it", "Inspect it" ޴ ϸ 丷 ϰų ų Ž ֽϴ. Ű ϱⰡ , Ⱑ , Ž Ⱑ Դϴ. ---------------------------------------------------------- ׷ #prompt:caption: ø ޾Ƽ Է ڿ ƹ Է ʰ ۼ質 "Cancel" ߸  Ͼ ? ȣ Դϴ. Ѵ "nil", ' ' Ѿɴϴ. ̾߱ "nil" "ƹ ͵ " Ÿٰ ߽ϴ. ׷Ƿ ڰ ƹ ٵ Է ¿ ׳ Է ڸ ݾƹȴٸ ǵƿ "" ۿ . Է ڴ #prompt:caption: ÿ Ҿ ϳ ˾Ƶ ֽϴ. Ʒ 丷 ô. Prompter on: 'ȫ' prompt: '̸ ġ.' caption: '̸ ' ׸ â Ÿ Դϴ. <׸ 3-31> ̹ ִ ϱ (Stp3-31.gif) #prompt:caption: ð ο Ͱ ޸ #on:prompt:caption: ô "on:" ڿ ִ ٿ ؼ Է ڸ ϴ. ׸ ٿ , "on:" 踻 ڿ ִ 'ȫ' ̶ Էĭ ǥõǾϴ. ̷ ؼ ǥõ ļ Է ְڰ, ο ٽ Էص Դϴ. ƹư #on:prompt:caption: "on:" ڿ Ÿ ѱٴ ٸϴ. ̷ ؼ Է ڿ "Cancel" ߳ ۼ踦 "nil" ѱ ˴ϴ. Prompter ˾Ƶ ִ ÿ ؼ 캸ҽ ϴ. Ʒ Prompter ˾Ƶ ִ ø ٽ ҽϴ. Prompter ˾Ƶ ִ ---------------------------------------------------------- Prompter prompt: aStringPrompt caption: aStringCaption â "aStringCaption" ϴ Է ڸ . ȿ "aStringPrompt" ٷ ǥõȴ. Է ĭ ְ "OK" ߸ ų ۼ踦 ġ Էĭ ״ ѱ. "Cancel" ߳ ۼ踦 ġ ڴ "nil" ѱ. Prompter on: aValueModel prompt: aStringPrompt caption: aStringCaption "aStringCaption" Է ڸ . ȿ "aStringPrompt" ǥõǸ, Էĭ ȿ "aValueModel" ־ ü( ) ǥõȴ. ϰų "OK" ߳ ۼ踦 ġ شϴ Ѱ, "" ߳ Ūڽ ġ "nil" Ѿ´. ---------------------------------------------------------- ------------------------------------------------------------- ѱ ߷ ٲ ? Է ڸ  "OK" "Cancel"̶ ߰ ֽ . ȭڿ ߴ "Ȯ" "" ǥõ˴ϴ. ׷ Dolphin Smalltalk ִ Է ߴ ѱ۷ ĥ ϱ? ׷ ʽϴ. 翬 ĥ ֽϴ. MVP ؼ ͼ, ӻ(view composer) Ǹ 󸶵 ȭ ڸ ϴ ٲ ֽ . ׷ ְ ٴϴ.... ^^: ---------------------------------------------------------- Է ù ° ν ⼭ " Է "  , Է ڿ Էµ  ؼ ҽϴ. MessageBox Prompter ڽ Ƶ ִ ø ؼ Է ڸ  ־ϴ. ˸ ڳ Է ø Ȱؾ Դϴ. ִ غϰ ߿ ڰ ϴ Է ִ Է ڿ ؼ ˾ƺڽϴ. ... :[] : ü з ö ڷ: [164] :ȫ (Ϲ) 2000-04-13 07:26 ȸ:149 оϴ. Ʒ MVC ؼ ̴ּµ, ᱹ Smalltalk MVC Ÿ ٸ ¥ӻ(framework) ؼ GUI ϴ±. ֽϴ. Smalltalk ó Smalltalk/V ߽ϴ. ʿ Model-Pane̶ Ư ü踦 ߾µ, ⵵ ư ô OO Ǵ ׳ ֹȽϴ. ׷ Dolphin ˰ԵǸ鼭 GUI ¥ӻ ͵ϰ ƽϴ. α׷ָ Դ ϴ ƴϱ Smalltalk GUI ¥ӻ ϴµ 6̶ ð ɷȽϴ. :) ƹư Dolphin MVP(Model-View-Presenter) ؼ մϴ. Ͻ MVC Ǿִٴ ͵ ־ Դϴ. ƹư Visual Basic̳ Delphiʹ 繵 ٸ GUI ۾ ̶ , ƿ ؾ ϰ Ӱ Ϸ ϴ ݾ ̴° ϴ. Բ ϼ, ᱹ " з ö"̶ ϰ ͽϴ. 1970뿡 з α׷ ַ ̷ , ˰ ڷᱸ ߾ϴ. ᱹ ̶ ͵ ü з Ư ̿ؼ Ŷ մϴ. " Ʈ  ˰ ʿѰ?" "  ˰ ڷᱸ ϴ°" ö ߽ ǿ,  ü ϴ Ƿ з ٲٰ ؾ߰. ü⿡ ؼ ϱ 1993 Դϴ. C++ ߴ ñ⿴. ׷ θ C++ å ؼ ôµ, ü å ϴ Ӽ, , 强(encapulation) ִ. ׷ κ C++å ׷, κ å鵵 C++ ַؼ ̾ϴ. ȭ α׷ Ʋ ӿ C++ ٶ󺸷 ߰, ׷ ᱹ C++ ġ . ", ̷ ü  " ؼ , α׷ֺٴ ϰ ⿡ ־ϴ. 1995 Delphi 鼭 ѹ ߽ϴ. ", ü̶ ̷ Ѱű" ߽ϴ. ϸ ü ƴ϶ "GUI "̶ ؾ Ǿҽϴ. ݵ (source) 鿩ٺ ڽ ѽϴ. α׷ UI Ǿ־ 䱸 ݸ ٲ α׷ ˴ϴ. GOTO ؼ İƼ ڵ ϴ. ׷ ص " (class) ų ޾Ƽ " ϴ. ׷... 98 Smalltalk θ ϸ鼭 ̷ ȭ ޾ϴ. 98 99 ݱ ߴ ü̶ з ٽ غ, з ȭ ñ⿴ϴ. ü⿡ ؼ ִٰ ϴ, Ͻ ""̶ ̴. 츮 ڸ ؼ ǰ ʿմϴ. , ū , , , ġ... ̷ ϸ ϳ ˴ϴ. ƹ , ڵ Ŷ ü ؾ մϴ. ̸ ''̶ ϴ° ׷ . Ȱ   ؼ ΰ.... ٷ ׷ ̶ Ǿϴ. ̶ ִ , ü ⺻ ü (message), ׸ (class) ֱ ̶ õ ǽϴ. C++̳ Delphió ȥ ü α׷ֿ Դϴ. ֳ?  α׷ ع α׷ © ־ . ׷ Smalltalk ϴ. ƴ, ޶󺸿ϴ. 1 Smalltalk ϴ , "¥ӻ"(framework)° , ̰ ʿѰ, ׸ ̶  ϴ. Smalltalk (base image) ִ ü ܰ迡, ε ܰ ߴٴ . ؼ ٸ , Smalltalk ü ϰų, ̹ ִ ο Ʒ  ذϴ ߽ϴ. Smalltalk ý ü ü ǻϸ鼭 ̷ ̶ űϱ ߽ϴ. ׷, ĥ "Design Pattern" "Design Pattenr Smalltalk Companion"̶ å ߽ϴ. ̶ ġ ִٴ , ׸ ̷ θ μ α׷ ܰ踦 ˾Ƴ ִٴ° Դϴ. ± ü ִٰ, ʿ ̷ ݰ , ʹ ѽմϴ. ޾Ҿ... ᱹ ū Դϴ. "Design Pattern Smalltalk Companion" " ٸ ޶, ٸ  ޶" ִ. Delphi Visual Basic ϰ ֽϴ. ׷ ϳ  ʹҽϴ. ׷ Smalltalk 鼭 ٲϴ. , и Smalltalk ϴ Ͱ ٸ  ϴ ٸϴ. ̷ ͵ ؼ ü ִ ɷ ʿϰ. ư, ü⿡ Ʈ žư ִ , ü ġ ִٰ մϴ. , Smalltalk ü̶ з ٶ󺸴 ð ξ پ ϴ.... , ̰ ü̱... ݾ ϴ. ܼ α׷̳ Ϳ ġġ ʰ, ӿ ִ ö ߰ ֵ ְ θ ؾ ϴ. , ÷ּ. ϴ. ׷. :[亯] Framework(¥ӻ) ڷ: [167] :ȫ (Ϲ) 2000-04-14 02:14 ȸ:152 ȳϼ? ȫ ȵ巹Դϴ. Ʒ Բ ¥ӻ ؼ 亯 ּ̽ϴ. ϱ, ü ˾ư ϴ ̱ , 𸣴 ֽϴ. ׷ Ʋ ִٸ ּ. Smalltalk ü Դϴ. ׷ Smalltalk üԴϴ. ׷ 츮 Smalltalk α׷ Ѵٴ , ᱹ Smalltalk ȿ ִ ü ̿ؼ ϴ Դϴ. , ⿡ ֽϴ.  ü Ǿ ʰ ü ֽϴ. ʽÿ. - - ȣ ̴ ö - - - ĭ - ũ - ȸ ̶ ϳ ü ̷ ؼ ü 𿩾 մϴ. ̷ ü ֽϴ. ׸ ü ǻ ϸ鼭, ü鳢 ø ְ 鼭 մϴ. ׷ ϴ ü ƹԳ ġѴٰؼ ʽϴ. ٷ ü Ʋ µ, ¥ӻ µ ġ ־ մϴ. ¥ӻ(framework) ٷ ̷ ƲԴϴ. ü ؼ óؾ ,  ̵ ü ؾ ϴ Դϴ. ڵ , ڵ Ϻ ξ ü ϰ ִµ, ̴ 'ڵ' ϴ ¥ӻ(framework) ̸ ֱ Դϴ. ׷... ƹư ϱ ؼ ü ؼ ؾ Ѵٴ ¥ӻ ߿ ̾߱Դϴ. MVP(Model-View-Presenter) ¥ӻ Smalltalk ؼ α׷ ʿ ¥ӻԴϴ. MVP ¥ӻ ũ '', 'ӻ', 'Ǯ̲' ü Դϴ. ''(model) α׷ ü Դϴ. ' '(domain model)̶ θ⵵ մϴ. α׷ ٽ ӿ Ǿ ֽϴ. 'ӻ'(view) α׷ ѸԴϴ.  α׷̴ ڿ ȭ ؾϴµ, 巯 α׷ ⸦ մϴ. , Է ڽŵ â ִµ, ̷ ͵ ӻ ϴ. 'Ǯ̲' ڿ ȭϴ κ, 콺 Ű忡 Է ޾Ƽ (model) ӻ(view) Ͽ ü α׷ Ǯ մϴ. δ Բ Ͻ MFC Doc/View MVC ֽϴ. MVP Dolphin Smalltalk ä ¥ӻԴϴ. ϴ MVP ¥ӻ ͵ ü⿡ . ׸ Smalltalk ڿ ŵ Դϴ. 𸣰, Smalltalk ⿡ ̷ ¥ӻ ٷ Դϴ. ׷ ؼ 켱 ⺻ ؾ ϱ , Smalltalk ؼ ְ ٷ մϴ. ƹư е鲲 ġ ʰ ֽð, Ȥó ۿ Ʋ κ ִٸ ð ֽʽÿ. ׷ θ ؼ ߸ ĥ ֱ Դϴ. ׷ ü ϼ. ȭ! :[] Smalltalk #33 ڷ: [170] :ȫ (Ϲ) 2000-05-11 17:08 ȸ:143 Smalltalk #33 2000. 4. 22. ȫ mailto:andrea92@hitel.net ====================================== 3. ü ä 3.1. ˾ƺ, ˸! 3.2. ǥ λ 3.3.  3.4. , Ǽ!!! 3.5. ȭ â 3.5.1. ˸ 3.5.2. Է c 3.5.3. Է ........ ======================================= 3. ü ä --------------------------- 3.5. ȭ â ~~~~~~~~~~~~~~ #32... 3.5.3. Է --------------------- տ 츮 Է ڸ Է¹޴ ˾ƺҽϴ. Prompter #prompt:caption:̳ #on:prompt:caption: Է ־ϴ. ׷ α׷ ۼϴ Է¹޴ ͺٴ ̸ ׸ ڵ鿡 ñ ִ ֽϴ. Ư ۼǿ ͼ ȭ鿡 ǥõ ׸ 콺 Ŭϴ ϴ. ⼭ ̸ õ Ͽ Է ִ ڿ ؼ ˾ƺô. Է ڿ "ListPrompter" ̸ پֽϴ. "ListPrompter" (class) ̸Դϴ. Ʒ 丷 ʷ 鼭 ListPrompter  ٿ ִ ˾ƺô. ListPrompter superclass ValueDialog ValueDialog superclass Dialog Dialog superclass Shell Shell superclass CompositePresenter CompositePresenter superclass Presenter Presenter superclass Object Object superclass nil "ListPrompter" "Prompter" "ValueDialog"( ȭ ) ֽϴ. Է ڿ Է ڴ Ư ִٰ ϸ ˴ϴ. ٸ Է ۼǿ Է ޾Ƽ óϴ Ͱ ޸ Է ̸ Ͽ ϴ ٸ Դϴ. "ListPrompter" ˾Ƶ ִ ø ν Է ڸ Է¹ ֽϴ. Ϳ 丷 ÿ. ListPrompter list: #('' 'Ķ' '') caption: ' .' '' <׸ 3-32> #list:caption: ø ListPrompter (Stp3-32.gif) 丷ó ListPrompter #list:caption:̶ ø Է ڸ ٸϴ. Է ڰ ó ׻ ù ° ׸ ̵Ǿ ֽϴ. 츮 "" ̵Ǿ Դϴ. ¿ "" "Ȯ" ߳ ۼ踦 ϴ. ׷ 丷 '' ̶ ״ ѾԽϴ. ⿡ ڴ ο Է ʿ䰡 ϴ. ٸ 츮 ׸, '', 'Ķ', '' ֵ ֽϴ. ڰ ״ Ѿ Դϴ. ̿ Է ڴ α׷  Ȳ ڿ ñ ֱ ſ Դϴ. {{}}#list:caption: "list:" 踻(keyword) ڿ ڰ  ׸ ִ ־ մϴ. ¹ٿ "list:" 踻 ڿ 迭(array) ־ϴ. ⼭ #( ) "2.3.5."(#19) 迭 ٷΰ(array literal) Ѵٰ ֽ . ƹư '', 'Ķ', '' ̶ 迭  "list:" 踻 ڿ ־ϴ. ̷ ߱ ڿ ׸ ԵǾ ִ Դϴ. "caption:" ʿ䵵 , Է ǥٿ ˴ϴ. ⿡ ڰ ؾ ָ ϴ. "list:" 踻 ڿ 迭 ִٰ ߽ϴ. ׷ 迭 ٻӸ ƴ϶ ʿϸ  ü̵  ֽϴ. ֽϴ. < 1> (block) ô. < 1> ü ϱ ---------------------------------------------------------- ListPrompter list: #(123 3.14 false true #apple nil $a '') caption: '~ ~'. ---------------------------------------------------------- 丷 ٿ Ⱑ ʹ 쿡 ̻ ̸ ص ٴ е ˰ Դϴ. < 1> ׸ Է ڰ ˴ϴ. <׸ 3-33> Է (Stp3-33.gif) ׸ , Ҽ, (false), (true), ̸(#apple) ($a) ('') Ÿ ֽϴ. ߿ ׸ ڿ "Ȯ" ߸ , ϰ ڿ ״ Ÿ ִ ֽϴ. ű ʽϱ? ̷ Է ڸ ϸ ü , ڰ ϴ ֽ . Է ڿ ִ , (nil) ׸ 'nil'̶ ǥõ ʰ ƿ ִ ׸ ٴ Դϴ. ֳϸ "nil" ƹ ͵ ׾߸ '' Ÿ ִ ׸ Դϴ. ׷ Է ڸ  ̰  ̸,  ̸ ϱⰡ ƽϴ. ׷ κ Է ڿ ڳ ٸ ϱ ū ȥ ̶ մϴ. ݱ 츮 ڿ ׸ ־ϴ. ׷ ʿϸ ̻ ׸ ֽϴ. Ʒ < 3> Ϳ Է ʽÿ. < 2> ̻ ׸ ִ Է ---------------------------------------------------------- ListPrompter multipleSelectionList: #('' 'Ķ' '') caption: ' ̻ .' ---------------------------------------------------------- ListPrompter #list:caption: ø Է ڳ #multipleSelectionList:caption: Է ڴ ޶ ʽϴ. ׷ ׸ ϸ ̻ ׸ ֽϴ. ڿ ̻ ׸ ϱ ---------------------------------------------------------- * Ϸ ׳ ش ׸ ŬѴ. * ӵ 쿡 ׸ Ŭ ׸ Ű ¿ ŬѴ. * ӵ Ű Բ . ---------------------------------------------------------- ̷ ϸ Է ڿ ִ ׸ ̻ ֽϴ. ׷ 츮 ؼ ̻ ׸ 󺸵 ϰ ϴ. ʽÿ. * '' ŬϿ մϴ. * Ű ¿ 콺 '' Ŭմϴ. ߴٸ ׸ ׸ õ Դϴ. <׸ 3-34> ڿ ׸ ϱ "" "" Բ ڿ "Ȯ" ߸ ѱ ֽϴ. #('' '') ̿ ListPrompter #multipleSelectionList:caption: ø ̻ ׸ Ͽ ֽϴ. #list: caption: ø ޶ Ѿ 迭̶ ϴ. ֳϸ Ѳ ̻ ü 迭 ü (container) ʿϱ Դϴ. ׷ ⼭ < 2> ô. ̹ ڿ " "̶ ׸ "Ȯ" ߸ ô. ׷ #('Ķ') Ѿ Դϴ. ̿ ׸ 쿡 #multipleSlectionList:caption: 迭̶ ֽϴ. 迭 ִ ü #at: ø ϸ ֽ ϴ. ʽÿ. < 3> #multipleSelectionList:caption: Ȱ ---------------------------------------------------------- | result | result := ListPrompter multipleSelectionList: #('' 'Ķ' '') caption: ' ̻ .'. result at: 2. ---------------------------------------------------------- Է ڰ Դϴ. <׸ 3-34> "" "ľ" "Ȯ" ߸ ô. ׷ 'Ķ' Ÿ Դϴ. ۿ result ǥ #multipleSelectionList:caption: 迭 ü پ Դϴ. '' 'Ķ', ׸ ٸ result ǥ ù Ҵ '', ° Ҵ 'Ķ' Դϴ. result := #('' 'Ķ'). 丷 ó Դϴ. #at: ÿ ° Ҹ ߱ 'Ķ' Դϴ. ׸ ߴٸ  ɱ? 쿡 â 鼭 "Index 2 is out of bounds" ܰ ߻ Դϴ. ֳϸ ׸ 쿡 翬 ° Ҵ ʱ Դϴ. ̿ #multipleSelectionList:caption: 迭̱ , ٷ #at: 迭 ü ٷ ִ ø ϴ Դϴ. ݱ 츮 α׷ ڵ鿡Լ Է¹ ִ ڿ ̹ õ ϰ ߿ ϰ ִ Է ڿ ؼ ˾ƺҽϴ. ü ̰ ϴ ؼ ˾ƺ ϰڽϴ. ...