Smalltalk80LanguageImplementationKor:Part 02

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
제 2 부

제 1부에서는 표현식이 취하는 형태에 대한 의미적 관점과 객체 및 메시지 전송에 대한 의미적 관점에서 Smalltalk-80 언어에 대한 개요를 제공하였다. Smalltalk-80 프로그래머는 무엇보다 언어의 의미, 즉 모든 정보는 객체의 형태로 표현된다는 것과 모든 처리는 객체로 메시지를 전송함으로써 이루어진다는 점을 이해해야 한다. 모든 객체는 클래스로 설명되고, Object 클래스를 제외한 모든 클래스는 다른 클래스의 서브클래스에 해당한다. Smalltalk-80 시스템에서 프로그래밍을 할 경우 객체의 새로운 클래스, 클래스의 인스턴스 생성, 인스턴스로 전송되는 메시지의 순서화 등이 수반된다. Smalltalk-80 구문은 메시지가 취할 수 있는 세 가지 형태, 즉 단항, 이항, 키워드 메시지를 정의한다. 언어를 성공적으로 사용하기 위해서는 프로그래머가 시스템의 기본적인 객체 유형, 그리고 객체로 전송할 수 있는 메시지에 대한 일반적인 지식을 겸비해야 한다.


언어의 의미와 구문은 상대적으로 간단하다. 하지만 이용 가능한 객체의 유형과 개수로 인해 시스템은 크고 강력하다. Smalltalk-80 시스템에는 8개의 주요 클래스 범주가 있는데, 이는 커널 및 커널 지원, 길이(linear measure), 숫자, 컬렉션, 스트림, 클래스, 독립 프로세스, 그래픽이다. 이러한 유형의 객체에 대한 프로토콜은 제 2부에 실린 12개의 장에서 살펴볼 것이다. 각 장에서는 제 1장에서 제공한 클래스 계층구조 그림을 다시 소개하면서 1장에서 논한 계층구조의 부분을 강조할 것이다. 제 2부의 세 장을 통해 Smalltalk-80 표현식과 클래스 설명에 대한 예제 또한 제공하고자 한다.


Smalltalk-80 시스템에서 클래스는 선형적 계층구조에서 정의된다. 제 2부의 장들은 클래스 프로토콜을 검토 시 사전식 접근법을 취하여 메시지의 범주가 정의되어 있고 각 메시지가 주석으로 달려 있으며 예제들이 제공된다. 하지만 클래스의 프로토콜을 표현할 때는 클래스에 의해 추가된 메시지만 설명한다. 전체적인 메시지 프로토콜은 클래스와 그 슈퍼클래스 각각에 명시된 프로토콜을 살펴봄으로써 결정된다. 따라서 Object 클래스의 설명으로 시작하는 클래스를 제시하고 주로 깊이 우선적(depth-first)인 방식으로 진행한다면 상속된 프로토콜이 새로운 프로토콜과 함께 이해될 수 있으므로 유용하다.


Notes