EY-Office ブログ

過去の話シリーズ(1) 卒業研究でLisp処理系を作った

今回から数回、EY-Office・吉田裕美の過去の歴史に付いて書きます。実際にお会いした方には定番の自己紹介をしていますが 広くEY-Office・吉田裕美がどんな人であるのかを知ってもらいたくてブログに書くことにしました。

目次

  1. 卒業研究でLisp処理系を作った
  2. 組み込みシステムの開発に苦戦
  3. 転職しベンチャー成功ストーリーを体験
  4. ベンチャー企業でオリジナルCADのコア部分を開発する(前半)
  5. ベンチャー企業でオリジナルCADのコア部分を開発する(後半)、そして大成功!
  6. ラスターCADという新製品を開発した
  7. SIの難しさ、リーダーの難しさ
  8. シリコンバレーからの影響
  9. EY-Office設立

プログラミング言語の歴史

まず第一回目は大学の卒業研究で関わった Lisp です。
Lispに付いては過去に Webメディアに記事 をいくつか書いていました、以下の画像は @ITに書いた「ちょっと変わったLisp入門」 の記事からの引用です。

Lisp は FORTRANの次に古いプログラム言語で、現在でも一部では使われているプログラム言語ですが、その画期的な言語仕様・実装技術は JavaScript, Ruby, Python などの現在の主要言語に大きく影響を与えています、また現在注目されている関数型言語の先祖でもあります。

さて、私は大学の卒業研究で Lispコンパイラーの実装を行いました。こう書くと凄いですが実際にはコンパイラーは他の研究室にポータブルなLispコンパイラーを作っている教授がいたので教えを請い、アイデアを書いたメモと、そこの大学院生が作ったLispで書いたLispコンパイラーのコードともらい、それを所属していた研究室のコンピュータに移植しました。
ただし教授が考えていたのはコンパイラーは独自のVM用のコードを生成し、実行環境はVMコードのインタプリターで実装する事を想定していました。

しかし私はコンパイラーが生成したVM用コードを複数の機械語列に変換するアセンブラー的なプログラムを作り直接機械語で動く方式に変更しました、そのアセンブラー的な機能を既に動いていいたLispインタプリターに追加する形で処理系を実装しました。そしてLispコンパイラーをLispインタプリター上で動かしLispで書かれたLispコンパイラーをコンパイルし、出来た機械語になったLispコンパイラーを動かすというブートストラップを方式を使い高速のコンパイラを作る事ができました。

また教授に教えてもらったCDRコーディングをLispインタプリターに実験的に実装しガーベッジコレクションで苦労したり、Lispコンパイラーのコード生成とアセンブラーをコルーチンで実装したりと色々な面白いプログラミンを体験が出来、ソフトウェア開発の楽しさにすっかりハマり一生の仕事にしようと思いました。
ここで学んだアルゴリズムやデータ構造などのコンピュターサイエンス的な知識・経験が後で大いに役に立つことになりました。

- about -

EY-Office代表取締役
・プログラマー
吉田裕美の
開発者向けブログ