<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SmallTalk%2F%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC</id>
	<title>SmallTalk/문법정리 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://mediawiki.zeropage.org/index.php?action=history&amp;feed=atom&amp;title=SmallTalk%2F%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC"/>
	<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SmallTalk/%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC&amp;action=history"/>
	<updated>2026-05-15T08:14:44Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.8</generator>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=SmallTalk/%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC&amp;diff=84974&amp;oldid=prev</id>
		<title>Maintenance script: Repair batch-0003 pages from live compare</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SmallTalk/%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC&amp;diff=84974&amp;oldid=prev"/>
		<updated>2026-03-27T00:29:10Z</updated>

		<summary type="html">&lt;p&gt;Repair batch-0003 pages from live compare&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 00:29, 27 March 2026&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l5&quot;&gt;Line 5:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 5:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br/&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*  &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;*  &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; ~cpp &lt;/del&gt;ClassName&amp;amp;gt;&amp;amp;gt;methodName.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;code&amp;gt;&lt;/ins&gt;ClassName&amp;amp;gt;&amp;amp;gt;methodName.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/code&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** 실제로 쓰이는 문법은 아니다. 하지만, Smalltlak 설명에서 해당 메소드가 어디에서 발현되는지를 알수 있게 만들어 준다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** 실제로 쓰이는 문법은 아니다. 하지만, Smalltlak 설명에서 해당 메소드가 어디에서 발현되는지를 알수 있게 만들어 준다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Debug 모드에서 메세지의 흐름을 나타낼때도 이용된다.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;** Debug 모드에서 메세지의 흐름을 나타낼때도 이용된다.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l90&quot;&gt;Line 90:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 90:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 괄호 &amp;#039;()&amp;#039; 를 써서 우선 순위를 변경할수 있다. You can alter precedence by using parenthses.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;* 괄호 &amp;#039;()&amp;#039; 를 써서 우선 순위를 변경할수 있다. You can alter precedence by using parenthses.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;----&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[&lt;/del&gt;Smalltalk&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]]&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Smalltalk&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Maintenance script</name></author>
	</entry>
	<entry>
		<id>https://mediawiki.zeropage.org/index.php?title=SmallTalk/%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC&amp;diff=39236&amp;oldid=prev</id>
		<title>imported&gt;Unknown at 05:28, 7 February 2021</title>
		<link rel="alternate" type="text/html" href="https://mediawiki.zeropage.org/index.php?title=SmallTalk/%EB%AC%B8%EB%B2%95%EC%A0%95%EB%A6%AC&amp;diff=39236&amp;oldid=prev"/>
		<updated>2021-02-07T05:28:03Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== 목적 ==&lt;br /&gt;
* SBPP를 공부하기 위해 최소한의 문법은 떼야하겠다는 생각이 들었다.&lt;br /&gt;
&lt;br /&gt;
== 기본 문법 ==&lt;br /&gt;
&lt;br /&gt;
* &lt;br /&gt;
 ~cpp ClassName&amp;amp;gt;&amp;amp;gt;methodName.&lt;br /&gt;
** 실제로 쓰이는 문법은 아니다. 하지만, Smalltlak 설명에서 해당 메소드가 어디에서 발현되는지를 알수 있게 만들어 준다.&lt;br /&gt;
** Debug 모드에서 메세지의 흐름을 나타낼때도 이용된다.&lt;br /&gt;
 배울때 가장 자주 보는 에러 메시지&lt;br /&gt;
 UndifinedObject(Object)&amp;amp;gt;&amp;amp;gt;doesNotUnderstand:&lt;br /&gt;
* :=  대입 연산자&lt;br /&gt;
 a := 1.&lt;br /&gt;
 b := OrderedCollection new.&lt;br /&gt;
* self : 자신을 지칭하는 참조&lt;br /&gt;
 Money class&amp;amp;gt;&amp;amp;gt;amout: anAmount&lt;br /&gt;
     self new setAmount: anAmount.&lt;br /&gt;
* super : 부모를 지칭하는 참조&lt;br /&gt;
 TempTestCase&amp;amp;gt;&amp;amp;gt;initialize&lt;br /&gt;
     super initialize.&lt;br /&gt;
* yourself : 해당 객체를 지칭하는 참조&lt;br /&gt;
 a := OrderdCollection new&lt;br /&gt;
     add: 10;&lt;br /&gt;
     add: 1;&lt;br /&gt;
     add; 9;&lt;br /&gt;
     yourself.&lt;br /&gt;
* ^ 리턴 : Smalltalk 모든 메소드는 리턴한다. C에서와 같은 void는 없다. 그래서 명시적으로 리턴 안해주면 self를 리턴한다.&lt;br /&gt;
 Color&amp;amp;gt;&amp;amp;gt;alpha&lt;br /&gt;
     ...&lt;br /&gt;
     ^1.0&lt;br /&gt;
&lt;br /&gt;
=== 메시지 보내기 ===&lt;br /&gt;
from VisualWorks Lesson Browser 01 (Lesson: Language Basic)&lt;br /&gt;
* 모든 스몰토크 표현식이 다음과 같은 양식을 따른다.All Smalltalk expressions follow the form:&lt;br /&gt;
* &amp;#039;&amp;#039;&amp;#039;anObject aMessage.&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
* 예시)&lt;br /&gt;
 &amp;quot;Code in Bold&amp;quot;		&amp;quot;Comments in double-quotes&amp;quot;&lt;br /&gt;
 3 squared.		&amp;quot;Receiver object is small integer 3.&amp;quot;&lt;br /&gt;
 			&amp;quot;The message sent is   #squared&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 &amp;#039;abc&amp;#039; asUppercase.	&amp;quot;Receiver object is string &amp;#039;abc&amp;#039;.&amp;quot;&lt;br /&gt;
 			&amp;quot;The message sent is   #asUppercase&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 200 factorial.		&amp;quot;Receiver object is small integer 200.&amp;quot;&lt;br /&gt;
 			&amp;quot;The message sent is   #factorial&amp;quot;&lt;br /&gt;
&lt;br /&gt;
=== 메시지 종류 ===&lt;br /&gt;
from VisualWorks Lesson Browser 01 (Lesson: Language Basic)&lt;br /&gt;
* Unary messages&lt;br /&gt;
** 선택자는 단일 식별자이며, 인수는 없다.(the selector is a single Identifier, there are no arguments)&lt;br /&gt;
** 예시)&lt;br /&gt;
 3 negated			&amp;quot;selector is  #negated&amp;quot;&lt;br /&gt;
 &amp;#039;abcdefg&amp;#039; reverse		&amp;quot;selector is  #reverse&amp;quot;&lt;br /&gt;
* Binary messages &lt;br /&gt;
** 선택자는 특정한 기호(하나나 둘이상의 문자, 숫자가 아님)이고, 인수가 딱 하나만 있다.(the selector is one or two non-alphanumeric characters, followed by exactly one argument object)&lt;br /&gt;
** 예시)&lt;br /&gt;
 3 + 5				&amp;quot;selector is  #+&amp;quot;&lt;br /&gt;
 				&amp;quot;argument is the Integer object 5&amp;quot;&lt;br /&gt;
 &amp;#039;abc&amp;#039; , &amp;#039;xyz&amp;#039;			&amp;quot;selector is  #,  (comma character)&amp;quot;&lt;br /&gt;
 				&amp;quot;argument is the String &amp;#039;xyz&amp;#039;&amp;quot;&lt;br /&gt;
 20 &amp;amp;lt;= 20			&amp;quot;selector is  #&amp;amp;lt;=&amp;quot;&lt;br /&gt;
 				&amp;quot;argument is the Integer object 20&amp;quot;&lt;br /&gt;
* Keyword messages&lt;br /&gt;
** 키워드란 콜론(:)이 뒤에 붙는 식별자이다.(a keyword is an Identifier followed by colon &amp;quot;:&amp;quot;  )&lt;br /&gt;
** 각 키워드에 인수가 있을 때, 선택자는 하나 이상의 키워드이다.(the selector is one or more keywords, when called each keyword is followed by an argument object) -&amp;gt; 세번째 예시 참고&lt;br /&gt;
** 예시)&lt;br /&gt;
 3 raisedTo: 17.			&amp;quot;selector is  #raisedTo:&amp;quot;&lt;br /&gt;
 				&amp;quot;argument is 17&amp;quot;&lt;br /&gt;
 3 between: 5 and: 10.		&amp;quot;selector is  #between:and:&amp;quot;&lt;br /&gt;
 				&amp;quot;arguments are 5 and 10&amp;quot;&lt;br /&gt;
 Point x: 4 y: 200. 		&amp;quot;receiver is the object Point&amp;quot;&lt;br /&gt;
 				&amp;quot;selector is  #x:y&amp;quot;&lt;br /&gt;
 				&amp;quot;arguments are 4 and 200&amp;quot;&lt;br /&gt;
== 신기한점 ==&lt;br /&gt;
2 + 3 * 6 은 몇일까?    &lt;br /&gt;
 일반적으로는 20이겠지만 SmallTalk에서는 30이다.--; 열라 신기하다.&lt;br /&gt;
&lt;br /&gt;
  읽은지 얼마 안되었는데도 스몰토크의 메소드 길이는 7줄을 넘지 않는다는 말이 나온다. 그러면서 extract method(이 말을 직접적으로 쓰진 않았지만)도 나온다.&lt;br /&gt;
&lt;br /&gt;
  리팩토링 관련 문구 계속 나오고 있다.&lt;br /&gt;
  컨테이너 리턴하는 메소드는 앞에 as를 붙인다. 이것도 써먹어야겠다.&lt;br /&gt;
&lt;br /&gt;
== Message 의 전달 순서 ==&lt;br /&gt;
from Smalltalk by Example &lt;br /&gt;
# 메세지는 왼쪽에서 오른쪽으로 진행한다. Evaluation is done left to right.&lt;br /&gt;
** 그래서  &amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039;2 + 3 * 6&amp;#039;&amp;#039;&amp;#039;&amp;#039;&amp;#039; -&amp;gt; 30&lt;br /&gt;
* Unary 메세지는 가장 높은 우선 순위를 가진다. messages have the highest precedence.&lt;br /&gt;
* Binary 메세지는 그 다음의 우선 순위를 가진다. Binary message have the next precedence.&lt;br /&gt;
* Keyword 메세지는 가장 낮은 우선 순위를 가진다.Keyword message have the lowest precedence.&lt;br /&gt;
* 괄호 &amp;#039;()&amp;#039; 를 써서 우선 순위를 변경할수 있다. You can alter precedence by using parenthses.&lt;br /&gt;
----&lt;br /&gt;
[[Smalltalk]]&lt;br /&gt;
&lt;/div&gt;</summary>
		<author><name>imported&gt;Unknown</name></author>
	</entry>
</feed>