2021-01-01から1年間の記事一覧

rust-lang/cargo ソースコードリーディング

はじめに cargoにはバイナリの名前をパッケージ名と異なるものにする機能がある。 この機能はcargo-feature different_binary_nameという。 Cargo.tomlに以下を追記すると、cargo buildで出力されるバイナリはpiyoになる。 [[bin]] name = "piyo" path = "sr…

Rustコンパイラのソースコードリーディング

これはKMC(京大マイコンクラブ)アドベントカレンダー2021 の3日目の記事です。 昨日の記事はうたがわききさんの「List::Utilのpairs関数がPythonで欲しくなって」でした。 はじめに こんにちは。一回生のたまろんです。最近は言語処理系を読んだり書いたりし…

コンパイラ最適化を実装する

自作したインタプリタにいくつかのコンパイラ最適化を実装したので、そのときのメモを残しておく。 作ったもの github.com 入力したプログラムは以下の順で処理される。 Lex : プログラムをトークン列に変換 Parse : トークン列を中間表現に変換 Optimize : …

セキュリティキャンプ2021応募課題

セキュリティキャンプ全国大会2021に参加することになりました。応募用紙を書くにあたって、先人たちの応募用紙晒しが役立ったので、僕も応募課題を晒します。 冗長なところとかは一部省略してます。 セキュリティ・キャンプ全国大会2021 脅威解析トラック …