形式言語とオートマトンを教えてくださってた林先生の退職記念講演があったので、メモを取ってきました。
おもしろい講演会でした。
ところどころ、間違っているかもしれません。
08.01.30 15:00~16:00
All These Days of Software Practice & Experience
- イギリスの雑誌 Software Practice and Experience
- これといって目新しいことはないが知りたい人は知りたがるような論文の雑誌
- その昔、どこを工夫したのか分からないという理由で掲載を受け付けてもらえない時代があった
- こういうところに投稿すると掲載してもらえる
- 学生の頃よりプログラムを書いてきた
- うまくいったものも、挫折したものも
- 今日の話は、自分がどういうことをしたかと、その反省
修士
- 修士になってからプログラミング生活
- 京大 電気工学第二
- 長尾先生
Lispインタプリタを作ってみる
- Lisp1.5のマニュアルを読んだ(英語の)
- 今ほど英語ができないので苦労
- なんとか作れた
- m表現(Lispのインタプリタの定義)
- Lispはデータを記述するための強力なS表現を持つ
- tree構造
- S表現に対する演算をm表現という
- m表現をS表現に変えて埋め込むと、m表現で自分自身のインタプリタを作ることができる
- アセンブラでプログラムを書いた
- もとのm表現の一部にアセンブラのコードが含まれたので、オリジナルのインタプリタも同様の仕組みで作られているものと思われる
- 反省:当時のアメリカの研究を知らなかった
- 2200(メインフレーム)で、紙テープにソースをパンチして実行するものを作った
- Lispはctss上にあって、端末から使うものとあとで知る
- 知識不足(やる前に勉強すべき)
- 大したものを作ったという印象はなかったので、論文にもしなかったが、当時そういうことをやった人はいなかった
ドクター
- あまり勉強できなかった
- ローカルエリアネットワークを構築
- (TCP/IPができる前)
- 音声データをネットワークでメインフレームに送って処理する
- 北沢先生
- 今は音声処理の人だが、ネットワークもやってはった
- メインフレーム用のOS
- ネットワークプロトコルスタック(TCPICP)
- 実時間連続音声信号転送
- 作業は多いが内容は難しくない
- 1回アセンブルするのに数時間かかる
- 印刷されると厚さ3cmくらい
- 10時にはじめて2時か3時に終わる
- アセンブルでもちゃんと作れば動く
- telnetでクライアントとサーバーを作る
- サーバーは簡単
- 受信して処理して返すだけ
- クライアントが大変
- 送受信で2個のリンクが必要
- 今は1つのリンクで双方向できるが、当時は一方向のみだったため
- Display, Keyboardで2本必要
- telnetのスレッドを2つに分けるのがオーソドックス
- 都合でそれができなかった
- 受信と入力をECB(イベント通知ブロック)に通知
- イベント待ちループが??(聞き逃した)
- GUIプログラミングと同じ考え方
- 疑似多重プログラミング
??大学の計算センターで仕事(聞き逃した)
C言語の移植で挫折
下降型パーサを作った
- 1回作って勉強するため
- 拡張BNF定義から加工型パーサを直接生成
- PL/1
- emptiness, first set, follow setを計算
- PL/1を出力
- 集合表現にビットマップ
- オーソドックスなもの
北海道大学大型計算機センター
- 計算機センターの主な利用者は物理、建築、化学の研究者
- 90%を10%の人が使ってる状態
ユーザー支援のためにTeXを移植
その他
- 助教授なので雑用が来る
- 頻繁に東大に出張
- 共同利用番号制
- 同じアカウントを複数のセンターで使えるようにするもの
- 北大のセンターが混んでたので、東大の客を取ろうとした
N1Mail
- インターネット以前はN1しかなかった
- 当時としては大規模なネットワーク
- 大型センター同士のメールのシステム
- センター間で内部の漢字コードとかが違う
- N1Mailプロトコル
- 漢字利用可能
- telnetで転送
- 実装方法
- データベースはVSAMファイル
- メール処理 ユーザ手続きと常駐タスク
- PL/1
- 1人で実装
- ユーザーインターフェイス 漢字モードと英語モードの切り替え
- メインフレームのダンプを取ってインターフェイスを調べる
日本語web
感心したもの
最近作ったもの
- LR(1) parser simulator
- 上に式を入れてカチカチやるとパースの過程が見える
- LR(1)パーサーは簡単なものだが分からないと難しい
- reduce, shift
- Webアプリケーション(html, javascript, css)
- アニメーションが大変
質問
- プログラミングはいつまでなさっていた?
- 今でもやっている
- 何歳でもできる?
- 何歳でもできる