Hatena::Groupcadr

わだばLisperになる このページをアンテナに追加 RSSフィード

2004 | 12 |
2005 | 01 | 02 | 07 | 10 | 11 |
2006 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 11 |

2008-03-20

30年前のオリジナルEMACSとLisp開発環境

| 00:49 | 30年前のオリジナルEMACSとLisp開発環境 - わだばLisperになる を含むブックマーク はてなブックマーク - 30年前のオリジナルEMACSとLisp開発環境 - わだばLisperになる

最近サービスが開始されたPartty!.orgが面白そうだったので、オリジナルのEMACSを操作しているところをアップしてみたら受けるかもしれないということでキャプチャしてアップしてみました。

EMACSは32年位前にITS(MITで稼働していたMITのOS)で生まれ、それから同じくDECのPDP-10で稼働するTOPS-20等に移植されたのですが、このキャプチャはTOPS-20のものです。本当は、ITSの操作を取り込みたかったのですが、画面の描画が崩れてしまうので、しょうがなくTOPS-20で…。といっても見た目的にはそんなに違いはありません。

キャプチャについて大まかに解説すると、まず、MacLISPを起動しています。自分はMacLISPの初期化ファイルで、LEDITというEMACSとMacLISPが連携するLISP開発環境を呼び出しているので、起動後にすぐEMACSも起動します。

その後、適当にfib関数を定義したりしてみています。LEDITは、選択した範囲をMacLISPに送信する機能があるので、範囲を選択して送信すると、MacLISPでは送信された式が評価されます。そして、ショートカットでぱぱっとEMACSからMacLISPに抜けたり、戻ったりできます。

次に、carとcdrを拡張して定義できるcarcdr.lspというものをロードしてみています。

def-carcdrというマクロがあるので、適当にcadd...rのようなものを定義して遊んでみています。

その後、INFOを呼び出してLEDITの説明を表示してみています。

INFOもITSが生まれ故郷で、ITSでは、UNIXのmanのようにINFOが機能していました。

ほんのさわりしか紹介していないのですが、30年前のEMACSの時点でLISP式の編集に関しては、ほぼ完成してしまっています。

そして、70年代から、LISPのコーディングはこういう編集支援と共に育って来ていて、30年前の時点でLISPのメッカでは支援なしの素のLISPであれこれするということは既に行われていなかった様子です。