From deafd9a6fa34938c0c8c9589097e8c84e39bfa1b Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Thu, 22 Oct 2026 15:47:50 -0700 Subject: Split out the constructor chapter --- chapter-construction/README.ja.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 chapter-construction/README.ja.md (limited to 'chapter-construction/README.ja.md') 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=` を実行できます。 -- cgit v1.2.3