<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3ABaseChapter_038</id>
	<title>GnuSmalltalkUsersGuide:BaseChapter 038 - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://trans.onionmixer.net/wiki/index.php?action=history&amp;feed=atom&amp;title=GnuSmalltalkUsersGuide%3ABaseChapter_038"/>
	<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_038&amp;action=history"/>
	<updated>2026-05-02T13:17:02Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.3</generator>
	<entry>
		<id>https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_038&amp;diff=4025&amp;oldid=prev</id>
		<title>Onionmixer: GSUG CompiledCode 페이지 추가</title>
		<link rel="alternate" type="text/html" href="https://trans.onionmixer.net/wiki/index.php?title=GnuSmalltalkUsersGuide:BaseChapter_038&amp;diff=4025&amp;oldid=prev"/>
		<updated>2014-01-27T03:37:00Z</updated>

		<summary type="html">&lt;p&gt;GSUG CompiledCode 페이지 추가&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;;CompiledCode&lt;br /&gt;
&lt;br /&gt;
==CompiledCode==&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;네임스페이스 Smalltalk에 정의됨&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;슈퍼클래스: ArrayedCollection&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;범주: 언어-구현&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
:나는 컴파일된 코드를 표현한다. 나는 블록과 메서드를 위한 추상 슈퍼클래스이다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode 클래스: 캐시 비우기(cache flushing)===&lt;br /&gt;
&lt;br /&gt;
====flushTranslatorCache====&lt;br /&gt;
&lt;br /&gt;
가상 머신에서 (존재하는 경우) just-in-time 코드 번역기에 의해 유지되는 캐시 유형을 응답하라. 현재로선 아무 일도 하지 않는다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode 클래스: 인스턴스 생성===&lt;br /&gt;
&lt;br /&gt;
====new: numBytecodes header: anInteger literals: literals====&lt;br /&gt;
&lt;br /&gt;
주어진 바이트코드 수와 주어진 헤더의 공간이 있는 수신자의 새 인스턴스를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====new: numBytecodes header: anInteger numLiterals: numLiterals====&lt;br /&gt;
&lt;br /&gt;
주어진 바이트코드 수와 주어진 헤더의 공간이 있는 수신자의 새 인스턴스를 응답하라. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode 클래스: 테이블===&lt;br /&gt;
&lt;br /&gt;
====bytecodeInfoTable====&lt;br /&gt;
&lt;br /&gt;
바이트코드의 일부 프로퍼티를 정의하는 ByteArray를 리턴하라. 각 바이트코드마다 4 바이트가 예약된다. 4번째 바이트는 플래그 바이트이다: bit 7은 인자가 bytecode-&amp;gt;line number 매핑을 생성 시 사용되는 행 번호임을 의미한다. &lt;br /&gt;
&lt;br /&gt;
첫 세 개는 연산의 조합을 나타내는 바이트코드에만 적용되는 의미를 갖는다: 4번째 바이트의 bit 0 = 0일 경우 BC1 ARG BC2 OPERAND 조합이 가능하고, 4번째 바이트의 bit 0 = 1인 경우 BC1 OPERAND BC2 ARG 조합이 가능한데 여기서 BC1 은 첫 번째, BC2는 두 번째, ARG는 세 번째 바이트이고 OPERAND는 바이트코드 스트림에 표시되는 바이트 인자다. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====specialSelectors====&lt;br /&gt;
&lt;br /&gt;
메서드 내에서 전송되어야 하는 리터럴에 있을 필요가 없는 메시지명의 배열을 응답하라. 여기서 그들의 위치는 바이트코드로 된 정수 코드를 반영한다. &lt;br /&gt;
&lt;br /&gt;
====specialSelectorsNumArgs====&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#35;specialSelector가 응답한 메시지에 대한 arities의 조화로운 색인(harmoniously-indexed) 배열을 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 접근하기===&lt;br /&gt;
&lt;br /&gt;
====at: anIndex put: aBytecode====&lt;br /&gt;
&lt;br /&gt;
aBytecode를 anIndex-th 바이트코드로서 보관하라.&lt;br /&gt;
&lt;br /&gt;
====blockAt: anIndex====&lt;br /&gt;
&lt;br /&gt;
리터럴이 CompiledBlock 또는 BlockClosure일 것으로 가정하고 anIndex-th 리터럴에 부착된 CompiledBlock을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====bytecodeAt: anIndex====&lt;br /&gt;
&lt;br /&gt;
anIndex-th 바이트코드를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====bytecodeAt: anIndex put: aBytecode====&lt;br /&gt;
&lt;br /&gt;
aBytecode를 anIndex-th 바이트코드로서 보관하라.&lt;br /&gt;
&lt;br /&gt;
====flags====&lt;br /&gt;
&lt;br /&gt;
Private - 수신자에 대한 최적화 플래그를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====isAnnotated====&lt;br /&gt;
&lt;br /&gt;
&amp;#039;false&amp;#039;를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====literalAt: anIndex====&lt;br /&gt;
&lt;br /&gt;
anIndex-th 리터럴을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====literalAt: anInteger put: aValue====&lt;br /&gt;
&lt;br /&gt;
aValue를 anIndex-th 리터럴로 보관하라. &lt;br /&gt;
&lt;br /&gt;
====literals====&lt;br /&gt;
&lt;br /&gt;
나의 코드 또는 내가 소유하는 CompiledCode 인스턴스가 참조하는 리터럴을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====methodClass====&lt;br /&gt;
&lt;br /&gt;
수신자가 설치된 클래스를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====methodClass: methodClass====&lt;br /&gt;
&lt;br /&gt;
수신자의 클래스 인스턴스 변수를 설정하라. &lt;br /&gt;
&lt;br /&gt;
====numArgs====&lt;br /&gt;
&lt;br /&gt;
수신자의 인자 수를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====numLiterals====&lt;br /&gt;
&lt;br /&gt;
수신자에 대한 리터럴 수를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====numTemps====&lt;br /&gt;
&lt;br /&gt;
수신자에 대한 임시변수(temporaries)의 수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====primitive====&lt;br /&gt;
&lt;br /&gt;
수신자가 호출한 프리미티브를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====selector====&lt;br /&gt;
&lt;br /&gt;
메서드가 어떤 선택자를 통해 호출되는지 응답하라. &lt;br /&gt;
&lt;br /&gt;
====selector: aSymbol====&lt;br /&gt;
&lt;br /&gt;
메서드가 어떤 선택자를 통해 호출되는지 설정하라. &lt;br /&gt;
&lt;br /&gt;
====sourceCodeLinesDelta====&lt;br /&gt;
&lt;br /&gt;
LINE NUMBER 바이트코드 내 번호부터 소스 코드 행 번호까지 delta를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====stackDepth====&lt;br /&gt;
&lt;br /&gt;
수신자에게 필요한 스택 슬롯의 개수를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 기본===&lt;br /&gt;
&lt;br /&gt;
==== = aMethod====&lt;br /&gt;
&lt;br /&gt;
수신자와 aMethod가 같은지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====hash====&lt;br /&gt;
&lt;br /&gt;
수신자에 대한 해시값을 응답하라. &lt;br /&gt;
&lt;br /&gt;
====methodCategory====&lt;br /&gt;
&lt;br /&gt;
메서드 범주를 응답하라. &lt;br /&gt;
&lt;br /&gt;
====methodCategory: aCategory====&lt;br /&gt;
&lt;br /&gt;
메서드 범주를 주어진 문자열로 설정하라. &lt;br /&gt;
&lt;br /&gt;
====methodSourceCode====&lt;br /&gt;
&lt;br /&gt;
메서드 소스 코드를 응답하라 (FileSegment, String, nil 중 하나)&lt;br /&gt;
&lt;br /&gt;
====methodSourceFile====&lt;br /&gt;
&lt;br /&gt;
메서드 소스 코드가 보관된 파일을 응답하라.&lt;br /&gt;
&lt;br /&gt;
====methodSourcePos====&lt;br /&gt;
&lt;br /&gt;
methodSourceFile 내에서 메서드 소스 코드가 보관된 위치를 응답하라.&lt;br /&gt;
&lt;br /&gt;
====methodSourceString====&lt;br /&gt;
&lt;br /&gt;
메서드 소스 코드를 문자열로서 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 복사하기===&lt;br /&gt;
&lt;br /&gt;
====deepCopy====&lt;br /&gt;
&lt;br /&gt;
수신자의 깊은 복사(deep copy)를 응답하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 디버깅하기===&lt;br /&gt;
&lt;br /&gt;
====inspect====&lt;br /&gt;
&lt;br /&gt;
수신자의 내용을 길게 인쇄하라. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 바이트코드 디코딩하기===&lt;br /&gt;
&lt;br /&gt;
====dispatchTo: anObject with: param====&lt;br /&gt;
&lt;br /&gt;
바이트코드를 역어셈블하고 메시지 전송의 형태로 anObject에게 알린다. Param은 모든 메시지 전송에 인자로서 주어진다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 리터럴 - 반복===&lt;br /&gt;
&lt;br /&gt;
====allLiteralSymbolsDo: aBlock====&lt;br /&gt;
&lt;br /&gt;
&amp;amp;#35;allLiteralsDo: 와 같지만 발견된 Symbols로 aBlock을 호출하라.&lt;br /&gt;
&lt;br /&gt;
====allLiteralsDo: aBlock====&lt;br /&gt;
&lt;br /&gt;
나의 리터럴을 walk시키되 Arrays와 Messages로 내려가면서 접촉된 각 객체로 aBlock을 호출한다.&lt;br /&gt;
&lt;br /&gt;
====literalsDo: aBlock====&lt;br /&gt;
&lt;br /&gt;
나의 리터럴 리스트 내 각 객체로 즉시 aBlock을 호출하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 보안===&lt;br /&gt;
&lt;br /&gt;
====verify====&lt;br /&gt;
&lt;br /&gt;
수신자에 대한 바이트코드를 검증하고 검증 과정이 실패할 경우 예외를 발생시켜라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 접근 검사하기===&lt;br /&gt;
&lt;br /&gt;
====accesses: instVarIndex====&lt;br /&gt;
&lt;br /&gt;
주어진 색인으로 수신자가 인스턴스 변수에 접근하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====assigns: instVarIndex====&lt;br /&gt;
&lt;br /&gt;
주어진 색인으로 수신자가 인스턴스 변수에 작성하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====containsLiteral: anObject====&lt;br /&gt;
&lt;br /&gt;
수신자가 anObject와 같은 리터럴을 포함하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====hasBytecode: byte between: firstIndex and: lastIndex====&lt;br /&gt;
&lt;br /&gt;
수신자가 firstIndex와 lastIndex 사이의 색인에 &amp;#039;byte&amp;#039; 바이트코드를 포함하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====jumpDestinationAt: anIndex forward: aBoolean====&lt;br /&gt;
&lt;br /&gt;
바이트코드 색인 &amp;#039;anIndex&amp;#039; 에서 점프(jump)가 착지(land)하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====reads: instVarIndex====&lt;br /&gt;
&lt;br /&gt;
주어진 색인으로 수신자가 인스턴스 변수를 읽는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====refersTo: anObject====&lt;br /&gt;
&lt;br /&gt;
수신자가 주어진 객체를 참조하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====sendsToSuper====&lt;br /&gt;
&lt;br /&gt;
수신자가 super로의 전송을 포함하는지 응답하라.&lt;br /&gt;
&lt;br /&gt;
====sourceCodeMap====&lt;br /&gt;
&lt;br /&gt;
바이트코드 색인을 소스 코드 행 번호로 매핑하는 배열을 응답하라. 0 값은 유효하지 않은 명령어 포인터 색인을 나타낸다.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===CompiledCode: 번역===&lt;br /&gt;
&lt;br /&gt;
====discardTranslation====&lt;br /&gt;
&lt;br /&gt;
수신자(가 있을 경우)에 대한 just-in-time 번역된 코드를 정리하라.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Notes==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:GnuSmalltalkUsersGuide]]&lt;/div&gt;</summary>
		<author><name>Onionmixer</name></author>
	</entry>
</feed>