clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in...

28
clu2cの動態保存とは 何でしょう? 仮面の忍者赤影参上

Transcript of clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in...

Page 1: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

clu2cの動態保存とは 何でしょう?

仮面の忍者赤影参上

Page 2: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

自己紹介 •謎の人

•東平洋史の悪友

•飛騨の人の知り合い

–浸透言うな

Page 3: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

clu2c の展示でよく訊かれる質問

• シーエルユー(CLU)ってなんですか?

• 動態保存ってなんですか?

• 何かの役に立つのですか?

上記の質問に

お答えします。

Page 4: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

その前にCLU関連の東平さんの略歴を

1988年4月 東京工業大学第1類に入学

1989年4月 東京工業大学理学部情報科学科に配属

1990年4月 情報科学実験第二(木村泉先生担当)受講 →CLU、ncluと出会う

1991年4月 木村泉研究室に入る →clu2cの開発始まる

1991年9月 卒業論文のテーマ決まる

1994年3月 東京工業大学大学院博士課程前期修了 →CLUから離れる

2009年11月頃 京都御所へ行くついでにKOFへ行くことにし、そういえばclu2cもオープンソースだよなあ、と思い出す。→これが活動開始のきっかけ。

Page 5: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

それでは ご質問に お答えます

Page 6: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

CLU(くるう)とは何ですか?

プログラミング言語 • MITのBarbara Liskov考案(1974) ← 結構、古い • 強い型付

• コンパイル時に全てのオブジェクトの型が決まる • でも、任意の場所で変数宣言可能

• 抽象型(cluster)を定義可能 • 継承はできない

• 複数の戻り値が可能 → Rubyもパクった取り入れた a:int, b: real := type$procedure(c, d)

• 変数の値は全てヒープ上のオブジェクト • Garbage Collection

• イテレータ → Rubyのブロックになった

• 例外処理 → Rubyもパクった取り入れた

いわばRubyの先祖です

Page 7: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

clu2c(くるーつーしー)とは何ですか?

プログラミング言語CLUの処理系

• プログラミング言語CLUで書かれたプログラムをCで書かれたプログラムに変換(CLU to C)

• Cで書かれたプログラムを実行形式(a.out)にコンパイル

CLUの プログラム

Cの プログラム

clu2c

ライブラリ

clulink 実行形式

a.out

Page 8: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

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);

(略)

}

}

Page 9: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

動態保存とは何でしょう?

Wikipediaより

• 動態保存(どうたいほぞん)とは、関連する業界内においてその機械類がほとんど運用されないような状態において、機械類が本来の用途としての動作・運用可能な状態で保存されている場合、もしくはその状態そのもののことである。

• 動作・運用が可能ではない状態で保存する場合は静態保存という。

Page 10: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

ほとんど 運用されない ような状態に おいて

Page 11: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
Page 12: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

何かの役に立つのですか?

何の役にも立ちません

•CLU使う人なんて

もういません

Page 13: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
Page 14: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

技術の保存は必要でしょ

• 蒸気機関車(国鉄→大井川鉄道など)

• EF55型電気機関車(国鉄→ JR東日本→鉄道博物館)

• キハ52型(国鉄→JR西日本→いすみ鉄道)

• ボンネットバス(函館バスなど)

• レーシングカー

• FACOM-128B(富士通)

• リレー式計算機 14-A (カシオ計算機)

Page 15: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
Page 16: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

青春の記録

1988年4月 東京工業大学第1類に入学

1989年4月 東京工業大学理学部情報科学科に配属

1990年4月 情報科学実験第二(木村泉教授担当)受講 →CLUと出会う

1991年4月 木村泉研究室に入る →clu2cの開発始まる

1991年9月 卒業試験のテーマ決まる

1994年3月 東京工業大学大学院博士課程前期修了 →clu2cから離れる

2009年11月頃 京都御所へ行くついでにKOFへ行くことにし、そういえばclu2cもオープンソースだよなあ、と思い出す。→これが活動のきっかけ。

Page 17: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

clu2c現在の状態

開発自体は終了

• 木村泉先生退官により木村泉研究室消滅

• 東工大 理学部 情報科学科での公開は終了 →フランスのFTPサーバからソースを回収

• 現在は「動態保存」

• こちらでソースを公開中

– http://touhei.sakura.ne.jp/clu2c/

– http://sourceforge.jp/projects/clu2c/

Page 18: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

clu2cプロジェクト参加者

• 江原善(初代リーダー)

• 木原誠司(コンパイラ実装)

• 地引昌弘(デバッガなど)

• 孫音(ライブラリ実装)

• 牛嶋哲(二代目リーダー) – 日本語文字使用部分実装

• 富沢伸行(ライブラリ実装)

• 浦野幹夫(ライブラリ実装)

• 野澤義雄(ライブラリ実装)

• 林智子(ライブラリ実装)

• 森村健司 – Human68k、MS-DOSへの移植

• 森玲人(デバッガ担当)

• 東平洋史(最適化など)

など

プロジェクト終了後

• 前田修吾さん – Linuxへの移植およびPorts化

• 東平洋史 – 前田さんの改造をCLU使用部分に反映

– Cygwin、Ubuntu 9.04への移植

Page 19: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

参考文献

• 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

Page 20: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
Page 21: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)
Page 22: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

clu2c動態 保存会は 改名します

Page 23: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

新名称

Page 24: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

CLU動態 保存会

Page 25: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

改名の理由

• そもそもCLUが絶滅危惧種

– clu

• 一部(parserなど)は pclu または nclu → clu2c へ流用

– nclu

• 一部(parserなど)は clu2c へ流用

– CLUマシン

• LISPマシンみたいなもの

• ソースの所在不明

• clu2cだとオートコンプリートで しばしば「Clu2c」に勝手に変換されてしまう。

Page 26: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

CLU動態 保存会

Page 27: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

よろしく お願い します

Page 28: clu2cの動態保存とはなんでしょう?(東海道らぐ 初オフ会 in オープンソースカンファレンス 2012 Kansai@Kyoto 資料)

おしまい (^.^)/~~~