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

昨日(2019/8/17)までセキュリティ・キャンプ全国大会 2019 に参加していました。私は集中開発コースの「Y-Ⅱ C コンパイラを自作してみよう!」ゼミに参加しました。

セキュキャンとは?とか応募用紙1についてはここに書いてあるよ ↓

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

全体を通して C コンパイラを書いていたんですが、それ以外にも色々あったので時系列で書いていきます2

1 日目 8/13

開会式などの後、LT 大会がありました。尖った人たちの尖った話が聞けて楽しかったです。 kintone を全く見ておらず LT 希望を取っていたことに気づかなかったのが悔しいですね…

グループワークがあり、キャンプ終了後に活動する仲間を見つけてグループを組むといった趣旨のものでした。有志 4 人でチームを組み、プログラミング言語処理系に高度な言語機能を実装するための知見を一般に普及させる取り組みをやろうとなりました。

この日は講義の時間がなかったので C コンパイラのコードが書けなかったです。正直 5 日間コードが書けると思っていたので拍子抜けでした(プログラムはちゃんと読もうな) (でもグループワークも LT 大会もめちゃー楽しかったのでいい 1 日でした)

2 日目 8/14

初期化子3を実装しました。初期化子しんどくて、見た目が似ていても{グローバル,ローカル}な{値,配列}でどれも全然違うことをやらねばならんのですよ

でもこの日は一日中コードを書ける日でした。幸せの具現化ですね。

一方で 1 日が終わるにつれて「これ期間中にセルフホストできないんじゃね?」みたいな焦りがひどく、部屋に帰ってからは暗黙の型変換をガーッと実装していました

3 日目 8/15

講義時間中は struct を実装しました。部屋に帰ってから typedef を実装しました。enum が生えたのもここら辺じゃないかな

期間中のセルフホストを諦めて4、明日からは別のことをやろうと思っていました。

この日と 4 日目に“会員企業のお仕事紹介”があったのですが、kintone を全く見ておらず希望を取っていたことに気づきませんでした。そういうこともあってどこの部屋にいけばいいのかわからずあたふたしてしまった。

4 日目 8/16

色々やった。

  • sanitizer を噛ませると発生しなくなる気味の悪いのバグを潰した5
  • rui さんに再配置について6事細かに教えてもらった。今までずっと疑問だった部分が晴れて本当によかった。
  • レジスタ割り当てのバグを取るための方法を考え、作業を始めた。

Y トラック内で発表会がありました。Y トラックには OS 開発ゼミと C コンパイラゼミがありますが、そこの全参加者が一人二分で全員話しました。ほんわかした雰囲気で進捗が報告されており楽しかったです。

その後ラストナイトイベントというやつがあり、本を得ました。ありがとうございます。

部屋に帰ってからは発表資料を作ったりレジスタ割り当ての改善を続けたりしていました。

5 日目 8/17

荷物をどうにかしなければいけなかったので朝飯が食べられませんでした。そもそも八時起床をやめろ

講義の成果報告の LT をしました。

その後閉会式などがあって終了です。

思うこと

いい環境で好なことをできるのは本当に楽しい

コーディングに集中できる環境(ディスプレイ、水分、お菓子)がありつつ実装で困ったことがあればすぐ講師の方々に相談できる最高の空間がありました。そこで作業している時間がとても楽しかったです、あの環境を用意してくださった運営やチューター、そして講師の方々には心から感謝しています。

また、コンパイラや言語処理系が好きな人たちと話すのは楽しかったしいい刺激になりました。1 日目に部屋に帰ったときは「おれが見ていた世界は狭かったんだな…」みたいな謎の感情をやっていた

飯の時間に多種多様な分野の人々と話したのも楽しかったです。めっちゃ面白い人だな〜と思って話していた人が、聞けば有名なプロだった、なんてことも

一方で、参加前はセキュリティキャンプについて 5 日間のコーディング合宿みたいなもんだと思っていたのですが、その認識は間違いでした。書ける期間は実質 3 日だし、2 日目以外は夜に色々と他のイベントがある

なのでもっとコード書きたかったというのはあります7 いやそれは趣旨と違うやろせやね

来年以降参加する人へのアドバイスですが、参加前はプログラムと kintone をよく確認したほうがいいです。特に kintone、結構大事なアンケートが来ていたりするので日常的なチェックを忘れずに…

進捗はどうですか

満足したらまた別にブログ書くから待ってね

成果報告時点の進捗はこんな感じ ↓

まとめ

五日間ありがとうございました!


  1. そういえばあれ紙じゃないじゃん↩︎

  2. 語調が統一できなくて、日本語は難しいなと思っている↩︎

  3. int a[] = {1, 2, 3}; みたいなやつの右辺っぽい部分↩︎

  4. https://twitter.com/coord_e/status/1161630222422122496↩︎

  5. 結局初期化忘れ↩︎

  6. GOT や PLT、PIC と PIE について↩︎

  7. コーディング合宿とか知ってる人いたら教えてください↩︎