
本気コンパイラ開発の日記【自作コンパイラで得られる知見】
無料で読める本
作者(現役高校生)が現在開発中のHydent言語という新しいプログラミング言語のコンパイラについて紹介しつつ、そのコンパイラ開発における知識・メソッドもしくは非常に専門的な最適化手法などを紹介していきます。 「動く」ではなく「実際に使われる」ような言語コンパイラの作成を目指す方に対しても、コンパイラの基本的な構造・設計手法など非常に専門的知識を含みますので有意義な本になるかと思います。 前提知識として、Rust言語(コンパイラ開発に用いる)の関連型やアンセーフなどの高度な機能を要求します。 1. 紹介する知識は大抵Rustのコンパイラを参考にしております。 2. LLMはコード例など含め全く使用しておりません。全て人間がキーボードで打っています。よって全て人間の手において確認済みです。 3. 執筆途中です。既存のチャプターも含めて変更される可能性が多分にあります。
Chapters
はじめに
前提知識
コンパイラって?どうやって作るの?/コンパイラの基本情報
言語設計/何を初期から決定するべき?
開発の始め方/アジャイル×ウォーターフォール
基盤の作成:Pull型クエリシステム理論編/インクリメンタルビルドの内部動作
基盤の作成:Pull型クエリシステム実装編(前半)/インクリメンタルビルドの内部実装
基盤の作成:クエリシステム実装編(後半)/インクリメンタルビルドの内部事情
基盤の作成:可変参照を返すイテレータの作成/Rustの限界を超えろ!
基盤の作成:アリーナアロケータとは・ECS的概念/なぜわざわざアロケータまで自作するのか?
基盤の作成:アリーナアロケータの設計/Rustcを"使って"メモリ安全を保証する
基盤の作成:アリーナアロケータの実装
フロントエンド:ロードマップ/フロントエンドの中身
フロントエンド/レクサーの作成
フロントエンド/パーサーの理論
フロントエンド/パーサージェネレータを作ろう
フロントエンド/更なる最適化への展望
Community
Author
Topics