セキュリティ・キャンプ全国大会 2019 に参加してきます

明日(2019/8/13)からセキュリティ・キャンプ全国大会 2019 に参加してきます1。私は「Y-Ⅱ C コンパイラを自作してみよう!」ゼミに参加します。

セキュリティ・キャンプ全国大会って何?

セキュリティ・キャンプ全国大会 2019 は、セキュリティ・キャンプのメインイベントとして実施している合宿形式の勉強会です。

エキスパートによる実践的な講義が受講できます。また、これまでにセキュリティ・キャンプに参加された修了生による学習支援があります。

セキュリティ・キャンプ全国大会 2019 ホーム:IPA 独立行政法人 情報処理推進機構

なんでこのコースにしたの

コンパイラが書きたかったので

応募用紙には何を書いたの

[問 1] これまでのプログラミング歴(C 言語に限りません)について好きなだけ語ってください。何か作ったものがあれば、それについても教えてください。

今までやってきたことを羅列しつつ、それぞれの取り組みで特に自分が努力したところ、またその取り組みから何が得られたのかを書くように心がけました。コンパイラに関係ないことも書くには書いた(でも低レイヤ寄りな部分を強調した)。

[問 2] コンパイラがソースコードから実行バイナリを生成する過程について、現在知っている範囲で説明してください。ソースコードの言語については、好きなものでかまいません。

字句解析してトークン列ができて、構文解析して AST ができて…みたいなことを書きました、各段階の表現が持っている意味がどう変化していくかみたいなのを意識した書き方をしました。

[問 3] C 言語のコンパイラを書く際に、もっとも難しいポイントはどこだと思いますか?考えたことや、これまでのプログラミング経験をもとに、具体的に教えてください。

C 言語のディスりが軸になっていた気がする。仕様が複雑だから大変〜みたいな… これはこれまでのプログラミング経験によって結構ばらつきそうだし、(どれだってそうだが)思ってることを書けばいいんじゃないかなあ

[問 4] 何か他にアピールしたいことがあれば、自由に書いてください。この設問も含め、誤ったことを書いていても減点はしません。書いておきたいことはなんでも書いてください。

コンパイラへの熱意をアピールし、キャンプでは今までやったことのない分野に挑戦したいと書いた。

C コンパイラ

参加が決まった段階から事前学習ということで C コンパイラを書いています。↓ こんな感じ

キャンプ前にセルフホストしてキャンプ中は最適化やるぞ〜とか思ってたらもう前日だよ、助けてくれ2

目標はセルフホストしつつ、gcc -O1 より速い3コードを吐かせることです

参加者の皆さんへ

名刺が無限にあるからもらってね

5 日間よろしくお願いします。

まとめ


  1. “参加しました”エントリのためにこの記事を書いている節、ある↩︎

  2. ブログなんか書いてる場合ですか?↩︎

  3. “速い”とは……↩︎