セプキャン2011 プログラミング言語クラスの感想
セキュリティ&プログラミングキャンプ2011にプログラミング言語クラス参加者として参加しました。
私の応募用紙は以下の記事で公開しています。
セプキャン2011 応募用紙 - Meta reifier
5日間の日程表(pdf)
プログラミングコース時間割
なかなかハードですね。
前半
第3日目の昼までは,プログラミング言語クラス全体で1つの講義を受講します。講義内容は日程表の通りです。
Rubyが目立ちますが,Rubyプログラムのソースコードを読み書きすることは,ほとんどありませんでした。C言語で書かれたRuby処理系のソースコードを読み書きすることが多いです。
後半
第3日目の昼から始まる「個別課題」以降は雰囲気が大きく変わります。
個別課題のタイトル
- 文法ハック
- 可視化・可聴化
- preludeをprecompileしよう
- 自作のプログラミング言語を作ろう
- 拡張ライブラリ作成による高速化
- 面白い拡張ライブラリ
- LambdaPi
- Rubyに末尾再帰の最適化の実装
- プロファイラの機能追加
- セキュリティコース CTF(Capture The Flag)への参戦
これら10種類のテーマから第3希望までの希望調査を取り,1つのテーマを遂行します。テーマごとに担当講師がいます。1人の講師が複数のテーマを兼任することもあります。
私は初め,シンプルな項書き換え系の処理系でも作ろうかと考えていましたが,様々な出来事があり,最終的に@kinabaさんのもとでシャミノ計算を発表することになりました。(柔軟な対応をしてくださった@takesakoさん達に感謝します)
シャミノ計算というのは,私がセプキャン以前(2011年6月頃)に考えていた計算モデルです。
ラムダ計算を,項書き換え系として,より形式的に表現することを目指しています。
シャミノ計算 - Meta reifier
個別課題への着手が遅れたことと,シャミノ計算の仕様がまだ曖昧であったことから,処理系を作るには至らず,プレゼン内容を考えて資料を作るだけで時間切れとなってしまいました。
今後
私が興味深いと思った概念を,他人に伝えまくるだけでもそれなりに社会貢献できることを初めて実感できたので,自信を持ってアウトプットしていけそうです。
シャミノ計算以外にもいくつか持ちネタがあるので,「またお前か」と言われるようにアウトプットしていくつもりです。