Smalltalk-72で学ぶOOPの原点:組み込みの構造化エディター(ソース概説)

アラン・ケイの“オブジェクト指向”というアイデアをもとに(非同期処理などいろいろ足りていないながらも──)比較的忠実に実装された1970年代の非常に古いSmalltalk-72で遊んでみるシリーズです(なお最新のSmalltalkについては Pharo などでお楽しみください!)。他の記事はこちらから→Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019 - Qiita


組み込みの構造化エディター(定義済みアクションやクラスの編集)の続き)

“The Smalltalk(-72) Editor”

edit(やfixアクションでも同じく)で起動できるSmalltalk-72に組み込みの構造化エディター(ブートストラップ時=ALLDEFSに定義される──)は、いくつかの基本的なAPIコールこそしていますが、全体としてわずか100行ちょっとで実装されています。Smalltalk-72の記述力、恐るべし…ですね。もっとも、そのぶん難読ではありますが…^^;(それでも、個人的印象ではもっとずっと記述力は高いものの、かなり気合いを入れないと読むことができないAPL/Jはもとより、頭の中でリスト処理をしないといけないLisp族よりは幾分読みやすいかな…と)。

ソースコードをざっと眺めてみましょう。

http://squab.no-ip.com/collab/uploads/st72editor-overview.png
The Smalltalk(-72) Editorのソースコード

Rubyのinstance_eval相当の「's」に続く)