GnuSmalltalkUsersGuide:BaseChapter 158

From 흡혈양파의 번역工房
Jump to: navigation, search
SystemDictionary

SystemDictionary

네임스페이스 Smalltalk에 정의됨

슈퍼클래스: RootNamespace

범주: 언어-구현


나는 특수 네임스페이스다. 나는 스몰토크 해석기에게 알려진 "Smalltalk"라는 하나의 인스턴스만 갖고 있다. 나는 "시스템"과 관련된 메서드를 몇 가지 정의하는데 #quitPrimitive를 예로 들 수 있겠다. 나의 인스턴스들은 객체들 간 의존성을 추적하도록 돕기도 한다.


SystemDictionary 클래스: 초기화

initialize

커널의 private 네임스페이스를 생성하라.


SystemDictionary: 기본

halt

해석기를 중단시켜라(interrupt).

hash

스몰토크는 주로 자신에 대한 참조를 포함하고, 무한 루프를 피한다.


SystemDictionary: builtins

basicBacktrace

디버깅을 돕기 위해 메서드 호출 스택 추적을 인쇄한다.

byteCodeCounter

VM이 실행하는 바이트코드의 수를 응답하라.

debug

해당 메서드는 VM 코드로 끼어들 수 있는 방도를 제공한다. gst 디버그에서 중단점을 설정하고, 버그가 발생할 것으로 생각되는 지점 근처에서 해당 메서드를 호출하라.

declarationTrace

컴파일된 바이트코드가 stdout에 인쇄되는지 응답하라.

declarationTrace: aBoolean

컴파일된 바이트코드가 stdout에 인쇄되는지 설정하라.

executionTrace

실행된 바이트코드가 stdout에 인쇄되는지 응답하라.

executionTrace: aBoolean

실행된 바이트코드가 stdout에 인쇄되는지 설정하라.

getTraceFlag: anIndex

Private - 해석기의 추적 플래그 중 하나인 부울 값을 리턴한다.

setTraceFlag: anIndex to: aBoolean

Private - 해석기의 추적 플래그 중 하나의 값을 aBoolean 값으로 설정한다 ('anIndex'로 표시).

verboseTrace

실행 추적이 객체를 스택 상단에 인쇄하는지 응답하라.

verboseTrace: aBoolean

실행 추적이 객체를 스택 상단에 인쇄할 것인지 설정하라.


SystemDictionary: c call-outs

getArgc

해당 설명 없음.

getArgv: index

해당 설명 없음.

getenv: aString

해당 설명 없음.

putenv: aString

해당 설명 없음.

system: aString

해당 설명 없음.


SystemDictionary: 명령행

arguments: pattern do: actionBlock

패턴에 명시된 구문에 따라 명령행 인자를 파싱하라. 발견되는 명령행 옵션마다 2-인자 블록인 actionBlock이 평가되면서 옵션명과 인자를 전달한다. 파일명에 있어서 (혹은 일반적으로 말해 옵션 이외의 다른 명령행 인자에 있어서) 블록의 첫 번째 인자는 nil이 될 것이다. 인자가 없는 옵션 또는 명시되지 않은 선택적 인자의 경우, 블록의 두 번째 인자가 nil이 될 것이다. 옵션명과 관련해 짧은 옵션은 문자 객체로, 그리고 긴 옵션은 문자열로서 전달될 것이다. 오류가 발견될 경우 nil이 리턴된다. 패턴의 구문에 관한 상세한 정보는 #arguments:do:ifError: 를 참고한다.

arguments: pattern do: actionBlock ifError: errorBlock

패턴에 명시된 구문에 따라 명령행 인자를 파싱하라. 발견되는 명령행 옵션마다 2-인자 블록인 actionBlock이 평가되면서 옵션명과 인자를 전달한다. 파일명에 있어서 (혹은 일반적으로 말해 옵션 이외의 다른 명령행 인자에 있어서) 블록의 첫 번째 인자는 nil이 될 것이다. 인자가 없는 옵션 또는 명시되지 않은 선택적 인자의 경우, 블록의 두 번째 인자가 nil이 될 것이다. 옵션명과 관련해 짧은 옵션은 문자 객체로, 그리고 긴 옵션은 문자열로서 전달될 것이다. 오류가 발견될 경우 파싱이 중단되고 errorBlock이 평가되며, 리턴된 값을 응답한다.

패턴에서 공백으로 구분된 부분('워드')마다 명령행 옵션을 명시한다. 워드가 콜론으로 끝나면 옵션은 의무 인자를 가질 것이다. 워드가 두 개의 콜론으로 끝나면 옵션은 하나의 선택적 인자를 가질 것이다. 콜론 앞에는 여러 개의 옵션명을 ('-l'처럼 짧은 이름이나 '-long'처럼 긴 이름) 명시할 수 있다. 옵션을 actionBlock으로 전달하기 전에 이름은 마지막 옵션으로 정규화될 것이다.

긴 옵션에서 접두사는 유일한 범위 내에서 허용되며, actionBlock으로 전달되기 전에 전체 이름으로 정규화된다. 게다가 옵션의 전체 이름은 긴 옵션의 접두사라 할지라도 허용된다. 의무 인자는 다음 인자에서 나타나기도 하고, 같은 인자에서 나타나기도 한다 (긴 옵션에 대한 인자의 경우 =로 구분). 선택적 인자는 같은 인자에서 나타나야 한다.


SystemDictionary: 다양한 메서드

arguments

-a 스위치 다음의 명령행 인자를 리턴하라.

backtrace

backtrace를 Transcript 상에 인쇄하라.

hostSystem

GNU Smalltalk가 빌드된 시스템에 해당하는 triplet을 응답하라.


SystemDictionary: 인쇄하기

nameIn: aNamespace

Smalltalk"를 응답하라.

printOn: aStream in: aNamespace

수신자로 컴파일하는 스몰토크 코드를 보관하라.

storeOn: aStream

수신자로 컴파일하는 스몰토크 코드를 보관하라.


SystemDictionary: 특수 접근

addFeature: aFeature

aFeature 기능을 Features 집합에 추가하라.

hasFeatures: features

'features' 내 기능 또는 기능들이 현재 구현 의존적인 기능들 중 하나인 경우 true를 리턴한다.

removeFeature: aFeature

aFeature 기능을 Feature 집합으로 제거하라.

version

현재 GNU Smalltalk 환경의 버전을 응답하라.


SystemDictionary: 검사하기

imageLocal

커널 디렉터리가 이미지 디렉터리의 하위디렉터리(non-local 이미지)인지 아닌지를 응답하라.

isSmalltalk

항상 'true'를 응답하라.


Notes