セキュリティ&プログラミングキャンプに参加して

帰宅してブログを書くまでがキャンプ、ということで、私は他の参加者よりも一週間ほど長くキャンプを満喫していたことになります。(吉岡さん、すみません)

感想ですが、キャンプ中はとにかく無我夢中で過ごしていたため、未だに頭の整理が付いていないというのが正直なところです。(更新が遅れたのは、そのせいでもあります)

ですが、キャンプが素晴らしい場であったことは確かです。

この経験を生かせるよう、努力していきたいと思います。

Yellow for Silverlight

n7shiさんが、Cyanに引き続きYellowもSilverlightへ移植してくださいました。

Yellow for Silverlight - 七誌の開発日記

「Cyanよりも更に洗練されている」というお言葉を頂いたので、Yellowの処理系を書くにあたって留意した点を書き留めておきます。

  • 他への依存が少ない部分から書き始める
    • YellObject -> YellSymbol -> YellPackage -> Lexer -> Parser
  • 拡張を定型作業として行えるような仕組みを作る
    • YellOperatorにおける継承関係
    • YellParent
  • C#の機能を最大限に生かす
    • 継承の有効な利用
      • 抽象クラス、インターフェース
    • リフレクションよりもデリゲート
    • ラムダ式LINQ、拡張メソッド

今後の課題としては、GlobalPackagesクラスによって生じた問題が挙げられます。

  • public staticなプロパティは、実質グローバル変数
    • 複数の状態を持てない
  • 静的フィールドは、初期化のタイミングが分かりにくい
    • ParentNameという苦肉の策

もっと他人の書いたコードを読むことで、さらに洗練されたコードを書けるようになろうと思います。
その意味でも、セキュリティ&プログラミングキャンプは楽しみです。

Cyan for Silverlight

id:n7shiさんが、CyanをSilverlightへ移植してくださいました。

Cyan for Silverlight - 七誌の開発日記

本体にほとんど手を加えずにブラウザ上で処理系を動かせるとは、思ってもみませんでした。
非常に参考になります。ありがとうございます。

ホームページにアクセスできない問題について

現在、ジオシティーズのシステム障害により、私のホームページにアクセスできないようです。
応急処置として、SkyDriveにていくつかのファイルを公開しました。

OneDrive

CyanやYellowをダウンロードする際は、こちらをご利用ください。
お手数をおかけして申し訳ありません。

追記:
復旧しました。ホームページ復旧 - takuto_hの日記

CPS変換と例外処理

yharaさんの、

CPS使うコンパイラとか参考にならないかなぁ>例外処理

はてなブックマーク - 試作言語Yellow - takuto_hの日記

という助言を元に探してみたところ、そのものずばりの論文が見つかりました。

例外処理機構を備えた命令型言語のCPS変換とその定式化

操作的意味論の部分は私にはまだ理解できませんが、それ以外はとてもわかりやすく、興味深いです。

yharaさん、ありがとうございます。