- 著者
-
山崎 憲一
吉田 雅治
天海良治
竹内 郁雄
- 出版者
- 一般社団法人情報処理学会
- 雑誌
- 情報処理学会論文誌 (ISSN:18827764)
- 巻号頁・発行日
- vol.43, no.1, pp.112-123, 2002-01-15
本論文では,Lispでオブジェクト指向プログラミングを行うための,Lispの拡張について述べる.本論文で提案する言語TAOは,ポリシーとメカニズムを分離するという考えに基づいて設計されており,たとえば,クラスや継承といったポリシーは提供しない.TAOは,オブジェクト指向計算のための最小限のメカニズムと,ポリシーを構築するためのメカニズムだけを備える.メカニズムは,Lispの環境とラムダ式を自然に拡張することにより導入される.ユーザは,これらを用いてTAO上にさまざまなポリシーを構築できる.本論文では,一例として,単純継承と委譲の構築例を示す.また,実装についても述べ,評価を行い,TAOの提供するメカニズムがいずれも十分な性能を達成していることを示す.This paper describes an extension of Lisp to incorporateobject-oriented programming into Lisp.A symbolic processing languageTAO, proposed in this paper, is designed based on policy/mechanismseparation principle where mechanisms support essential primitives forobject-oriented computation and policies, such as class definition andinheritance, determines how mechanisms are managed.The mechanisms areintroduced naturally by extending the Lisp's concept of environmentand lambda expression.By using these mechanisms, a TAO user canconstruct his/her own policy, such as single inheritance and simpledelegation which are shown in this paper as an example.We describe theimplementation of TAO and evaluate it using some benchmark programs,and as a result, we show that these primitives are efficient enough.