clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in...
Transcript of clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in...
clu2cの動態保存とは 何でしょう?
仮面の忍者赤影参上
自己紹介 •謎の人
•東平洋史の悪友
•飛騨の人の知り合い
–浸透言うな
clu2c の展示でよく訊かれる質問
• シーエルユー(CLU)ってなんですか?
• 動態保存ってなんですか?
• 何かの役に立つのですか?
上記の質問に
お答えします。
その前にCLU関連の東平さんの略歴を
1988年4月 東京工業大学第1類に入学
1989年4月 東京工業大学理学部情報科学科に配属
1990年4月 情報科学実験第二(木村泉先生担当)受講 →CLU、ncluと出会う
1991年4月 木村泉研究室に入る →clu2cの開発始まる
1991年9月 卒業論文のテーマ決まる
1994年3月 東京工業大学大学院博士課程前期修了 →CLUから離れる
2009年11月頃 京都御所へ行くついでにKOFへ行くことにし、そういえばclu2cもオープンソースだよなあ、と思い出す。→これが活動開始のきっかけ。
それでは ご質問に お答えます
CLU(くるう)とは何ですか?
プログラミング言語 • MITのBarbara Liskov考案(1974) ← 結構、古い • 強い型付
• コンパイル時に全てのオブジェクトの型が決まる • でも、任意の場所で変数宣言可能
• 抽象型(cluster)を定義可能 • 継承はできない
• 複数の戻り値が可能 → Rubyもパクった取り入れた a:int, b: real := type$procedure(c, d)
• 変数の値は全てヒープ上のオブジェクト • Garbage Collection
• イテレータ → Rubyのブロックになった
• 例外処理 → Rubyもパクった取り入れた
いわばRubyの先祖です
clu2c(くるーつーしー)とは何ですか?
プログラミング言語CLUの処理系
• プログラミング言語CLUで書かれたプログラムをCで書かれたプログラムに変換(CLU to C)
• Cで書かれたプログラムを実行形式(a.out)にコンパイル
CLUの プログラム
Cの プログラム
clu2c
ライブラリ
clulink 実行形式
a.out
clu2cの実行例
CLUで書いたプログラム
赤字は2バイト文字使用部分
start_up = proc()
標準出力:stream:= stream$primary_output()
for i:int in int$from_to(1, 5) do
標準出力!putl(”No. ” ||
i!unparse() ||
” Hello World!”)
end
end start_up
Cのプログラム(一部) int AFstart__up() {
if (OFstream_Dprimary__output()
== SIG) {
goto except0;
}
LV_X49383d603d504e4f =
retval_area[0];
for (t1 = 1; t1 <= 5; t1++) {
OFint_Dunparse(t1);
(略)
}
}
動態保存とは何でしょう?
Wikipediaより
• 動態保存(どうたいほぞん)とは、関連する業界内においてその機械類がほとんど運用されないような状態において、機械類が本来の用途としての動作・運用可能な状態で保存されている場合、もしくはその状態そのもののことである。
• 動作・運用が可能ではない状態で保存する場合は静態保存という。
ほとんど 運用されない ような状態に おいて
何かの役に立つのですか?
何の役にも立ちません
•CLU使う人なんて
もういません
技術の保存は必要でしょ
• 蒸気機関車(国鉄→大井川鉄道など)
• EF55型電気機関車(国鉄→ JR東日本→鉄道博物館)
• キハ52型(国鉄→JR西日本→いすみ鉄道)
• ボンネットバス(函館バスなど)
• レーシングカー
• FACOM-128B(富士通)
• リレー式計算機 14-A (カシオ計算機)
青春の記録
1988年4月 東京工業大学第1類に入学
1989年4月 東京工業大学理学部情報科学科に配属
1990年4月 情報科学実験第二(木村泉教授担当)受講 →CLUと出会う
1991年4月 木村泉研究室に入る →clu2cの開発始まる
1991年9月 卒業試験のテーマ決まる
1994年3月 東京工業大学大学院博士課程前期修了 →clu2cから離れる
2009年11月頃 京都御所へ行くついでにKOFへ行くことにし、そういえばclu2cもオープンソースだよなあ、と思い出す。→これが活動のきっかけ。
clu2c現在の状態
開発自体は終了
• 木村泉先生退官により木村泉研究室消滅
• 東工大 理学部 情報科学科での公開は終了 →フランスのFTPサーバからソースを回収
• 現在は「動態保存」
• こちらでソースを公開中
– http://touhei.sakura.ne.jp/clu2c/
– http://sourceforge.jp/projects/clu2c/
clu2cプロジェクト参加者
• 江原善(初代リーダー)
• 木原誠司(コンパイラ実装)
• 地引昌弘(デバッガなど)
• 孫音(ライブラリ実装)
• 牛嶋哲(二代目リーダー) – 日本語文字使用部分実装
• 富沢伸行(ライブラリ実装)
• 浦野幹夫(ライブラリ実装)
• 野澤義雄(ライブラリ実装)
• 林智子(ライブラリ実装)
• 森村健司 – Human68k、MS-DOSへの移植
• 森玲人(デバッガ担当)
• 東平洋史(最適化など)
など
プロジェクト終了後
• 前田修吾さん – Linuxへの移植およびPorts化
• 東平洋史 – 前田さんの改造をCLU使用部分に反映
– Cygwin、Ubuntu 9.04への移植
参考文献
• CLU Reference Manual – Liskov, B., Atkinson, R.R., Bloom, T., Moss, E.B., Schaffert, R.
and Snyder, A. 著
– http://publications.csail.mit.edu/lcs/specpub.php?id=793
• CLUとその仲間たち – 久野靖 著
– 共立出版 bit 1989年5月号~12月号
– http://www.oreilly.co.jp/books/9784873113630/#files
• 開発効率と移植性を重視したCLU言語処理系の作成 – 江原善 著
– 東京工業大学理工学研究科情報科学専攻 修士論文
– http://touhei.sakura.ne.jp/clu2c/clu2c-thesis.tar.gz
clu2c動態 保存会は 改名します
新名称
CLU動態 保存会
改名の理由
• そもそもCLUが絶滅危惧種
– clu
• 一部(parserなど)は pclu または nclu → clu2c へ流用
– nclu
• 一部(parserなど)は clu2c へ流用
– CLUマシン
• LISPマシンみたいなもの
• ソースの所在不明
• clu2cだとオートコンプリートで しばしば「Clu2c」に勝手に変換されてしまう。
CLU動態 保存会
よろしく お願い します
おしまい (^.^)/~~~