molecular coordinates

/var/log/coorde.log

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

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

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

セキュリティ・キャンプ全国大会2019は、セキュリティ・キャンプのメインイベントとして実施している合宿形式の勉強会です。 エキスパートによる実践的な講義が受講できます。また、これまでにセキュリティ・キャンプに参加された修了生による学習支援があります。

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

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

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

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

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

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

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

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

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

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

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

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

Cコンパイラ

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

github.com

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

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

参加者の皆さんへ

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

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

まとめ

*1:"参加しました"エントリのためにこの記事を書いている節、ある

*2:ブログなんか書いてる場合ですか?

*3:"速い"とは................