読者です 読者をやめる 読者になる 読者になる

本当は怖い情報科学

情報系大学院生の趣味&実益ブログ。

TCC(Tiny CC)のソースを読んでみようかな

TCC

きちんと体系的にコンパイラのいろいろな技術を勉強しようと思ったので、TCCを読んでみることにした。しばらくは耐えて勉強の時間を作ってみようと思う。今までは調べもせずに自己流で書いて中途半端にうまくいかなかったりして飽きたりしていたので(最低)、ちゃんと勉強し直すことにした。

Wikiを作ってひらメソッドでも良いのだけれど、ちょっと違うやり方をしてみようと思っている。というのは、Webでソースコードを表示するならWikiよりもGNU Globalの方が確実によいので、そちらを利用したいのと、Wiki記法をいつまでたっても覚えられないから。

というわけで、今回は
1. 自分のGitリポジトリの中にTCCソースコードを突っ込む
2. それを編集して、コメント等をつける
3. サーバー上で、git pull → GNU Global で変換 → RSSを生成してアップロード
という流れにしようと思う。3.を実現する自動化スクリプトを今作っているところ。

ちなみに、TCCソースコードリーディングには先達がいて、id:alohakunさんの 「TCC は素晴らしい

TCCを読み終わったら、次は原田先生の「コンパイラ構成法」のサンプルコンパイラを題材にして、それを拡張していくことによって体系的に技術を勉強しようと考え中。原田先生のサンプルコンパイラは、C言語風のシンプルな言語のコンパイラインタプリタで、非常に行数が少ないので(1000行程度)勉強に適している。本のサンプルを公開するのはまずそうなので、自分でC++にポーティングしたものをベースに拡張していく。具体的には、

  • 構造体・複合型の導入
  • ガベージコレクタ
  • クロージャの導入と最適化
  • ファーストクラス関数
  • 型推論
  • JIT
  • OpenMP-likeな自動並列化(一応、高性能計算が専門なので・・・)
  • その他諸々の最適化テクニック

等。かなり欲張っているのだけれど、それぞれに1〜2ヶ月くらい掛ければ、さわりの勉強程度にはなると思っている。まぁ難度的に無理だったらあっさりとあきらめるので。

コンパイラ構成法
コンパイラ構成法原田 賢一

おすすめ平均
starsコンパイラの作り方が
stars手を動かせ!!
starsコンパイラ作成の教科書
stars本格的なコンパイラ作成法の説明

Amazonで詳しく見る
by G-Tools

【広告】