summaryrefslogtreecommitdiff
path: root/docs/chapter29/README.ja.md
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-08-10 11:11:18 -0700
committerCliff Click <cliffc@acm.org>2026-11-01 10:33:55 -0800
commitf66ab11456244b12c48ee9231cec5c8b54b47efe (patch)
treeaaf80846f49bad4cc24487306eac7464804513d1 /docs/chapter29/README.ja.md
parente646e5c534f8c5cbfd2969958cf6f4930e687aeb (diff)
downloadSimple-f66ab11456244b12c48ee9231cec5c8b54b47efe.tar.gz
Simple-f66ab11456244b12c48ee9231cec5c8b54b47efe.zip
Chapter 29: Tech Debt Cleanuplinear-chapter29linear
Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: fuhsnn <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: Jun Kawasaki <jun784@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'docs/chapter29/README.ja.md')
-rw-r--r--docs/chapter29/README.ja.md27
1 files changed, 27 insertions, 0 deletions
diff --git a/docs/chapter29/README.ja.md b/docs/chapter29/README.ja.md
new file mode 100644
index 00000000..9bed7e12
--- /dev/null
+++ b/docs/chapter29/README.ja.md
@@ -0,0 +1,27 @@
+# 第29章: 技術的負債の整理
+
+[English](README.md) | 日本語
+
+[前の章: 第28b章 — 分離コンパイル](../chapter28b/README.ja.md)
+
+この章では、第28b章の言語と分離コンパイルの動作を保ちながら、コンパイラを
+読みやすく、変更しやすく整理します。最初の変更は、3,000行を超えたパーサを
+文法のまとまりに沿って `parser/` パッケージへ分割することです。
+
+`Parser` がカーソル、スコープ、型の登録情報を持ち、各部品は `Parser P` を
+共有します。構文解析は引き続き Sea-of-Nodes IR を直接生成します。
+`Var` は `parser/` に、反復ピープホール最適化の `IterPeeps` は `codegen/` に移ります。
+
+[パーサの構成(英語)](../../src/main/java/com/seaofnodes/simple/parser/README.md)と
+[文法と実装の対応表(英語)](29-grammar.md)からコードをたどれます。
+コンストラクタの初期化完了チェックの整理は今後の課題です。
+ソース上のプライバシー制約は今回は追加せず、[ロードマップ](../roadmap.md)に残します。
+
+リポジトリのルートからビルドとテストを実行します。
+
+```sh
+make lib tests release CHAPTERS=chapter29 CTAGS=
+```
+
+IntelliJ では `chapter29` モジュールと **chapter29 tests** 実行設定を使用します。
+ネイティブ実行を使うテストの前に、Make でランタイムと `sys` ライブラリをビルドしてください。