Ada Hackathon はどのレベルまでマジなんだ…
早速の反響感謝です。
Ada Hackathon はどのレベルまでマジなんだ…
http://twitter.com/kinaba/status/1066363323
かなり参加したいのだけど、現実的な時間で現実的になんかできるサブセットが存在するかどうかとかすらまったくわからないレベル
http://twitter.com/kinaba/status/1066367974
まー、1日ですとパーサ書くだけで終わりそうな予感ですよねー。こないだも少し触れましたが、仕様書の文法そのままですとconflictしまくりますし。実際私は相当時間かかりましたし……いやしかし私がへぼいだけでk.inabaさん級なら一瞬で終わるのか!?
まあそれはいいとして、1日で書けそうなサブセットというと、Adaの面白いところはgenericやtaskのように普通に実装していく上で後回しになる他の言語には無い機能にあるわけで。特徴的なオーバーロードの解決ロジックなんかはサブセットとしても必須でしょうけれど真面目にやったらこれも1日作業ですよねー(私がへぼいだけで一瞬ry)。どんどん削ぎ落としていくとそれなんて劣化Pascal?になってしまいますし。
しかもAdaのスローガンのひとつに"no subset and no supersets"というのがありまして、ACATSを通さずにAda処理系を名乗ろうものなら某国防総省から刺客がやってくること請け合いです。*1
つまりはサブセットとして遅延評価付きのラムダ計算機を作るだけでも充分面白そうなHaskellと異なり、骨格自体はつまらない手続き型言語であるAdaは、Hackathonには不向きなのではないかと考えられるわけです。
そこで現実的な遊び方を考えてみる……。
- 既にあるコンパイラ(gcc)をハックする。
- 他の言語にAdaの機能を持ち込んでみる。
- 他の言語からAdaへのトランスレータ。
- Ada「で」処理系を作るのは私個人の意見としては到底お勧めできません、が、VMならむしろAdaの得意分野かも。
- 特にこだわらずふつーにAdaでなんか作る。
- 現実を無視してゼロから作る。←本音ではこれやりたい。
そういえばSourceForgeにAdaコンパイラのプロジェクトがあったような……http://sourceforge.net/projects/eclat/……放置されてるー。
ちなみにどのレベルまでマジかと言いますと、私は共有者やってる時ですら本気具合がわからないと言われるような人間ですので、それはもう年明けにでも石川さんにメール投げてみて無視されたらあっさり諦めるか程度の超絶いい加減なプランしか持っていなかったのですが、幸いにして石川さんもその気っぽいので、後は都合や場所さえ合えば多分きっとおそらくもしかしてやります。
私はHackathonなるものに参加したことは無いのですが、はてなダイアリーのキーワードを参考にするに、てきとーに集まってなんかハックして遊ぶだけですよ……ね……(この時点で認識が違ってたらどうしようorz……真面目なイベント企画したりは私には絶対無理ですから!)
*1:国防総省は冗談ですが、実際オモチャにできるようなTinyAda処理系は存在しない……と思ってたんですが……google:TinyAda……結構ヒットしますね。ひょっとして探せばあるか?……と思いきやそういう名前のパスタがあるらしいorz