Smalltalk80LanguageImplementationKor:Part 02

From 흡혈양파의 번역工房
Jump to: navigation, search
제 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