summaryrefslogtreecommitdiff
path: root/chapter-construction/README.ja.md
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2026-10-22 15:47:50 -0700
committerCliff Click <cliffc@acm.org>2026-10-22 15:47:50 -0700
commitdeafd9a6fa34938c0c8c9589097e8c84e39bfa1b (patch)
treedb39ecbad856f986b84e229dbc4c023473892976 /chapter-construction/README.ja.md
parentdbcaebdefff26658debc29cae284ad4aa0da4c65 (diff)
downloadSimple-deafd9a6fa34938c0c8c9589097e8c84e39bfa1b.tar.gz
Simple-deafd9a6fa34938c0c8c9589097e8c84e39bfa1b.zip
Split out the constructor chaptermain
Diffstat (limited to 'chapter-construction/README.ja.md')
-rw-r--r--chapter-construction/README.ja.md22
1 files changed, 22 insertions, 0 deletions
diff --git a/chapter-construction/README.ja.md b/chapter-construction/README.ja.md
new file mode 100644
index 00000000..a0254867
--- /dev/null
+++ b/chapter-construction/README.ja.md
@@ -0,0 +1,22 @@
+# オブジェクトの構築と非公開メモリ
+
+[English](README.md) | 日本語
+
+[前章: 型が確定する前の SSA 構築](../chapter-incomplete-types/README.ja.md) |
+[章分割の計画](../docs/chapter-split.md)
+
+この章では、フィールドの初期化とコンストラクタを関数として扱います。
+構築中のフィールドはローカルな SSA 値として扱い、分岐やループでは
+通常の Phi で合流させます。各初期化関数の出口で通常の Store を生成し、
+フィールドごとの非公開メモリを次の関数に渡します。構築が完了した時点で、
+`EscapeNode` が初期化済みのフィールドを公開メモリに合流させます。
+
+全ての実行経路で必須フィールドが初期化されていることを確認します。
+構築中の `self` を通常の関数に渡したり、オブジェクトに格納したりする
+ことは、この章では禁止します。別名や呼び出しを通じた公開の追跡は、
+次のエスケープ解析の章で扱います。この境界は引き続き検討します。
+
+モジュール、クラスの遅延初期化、分割コンパイルはまだ導入しません。
+詳しい説明、制限、実行例は [英語版](README.md) を参照してください。
+
+このディレクトリで `make lib tests CTAGS=` を実行できます。