現在、アカデミック オブジェクト指向ミニ プログラミング言語のコンパイラの実装に関する学士論文を書いています。
ドキュメントを正確に記述したいと考えており、現在、コンストラクターがルーチンであるかどうかについて議論しています。
コンストラクターがルーチンであると私たちが指摘しているのは、コンストラクターがコマンド、パラメーター、およびローカル変数のブロックを持っているということです。名前が欠落しているにもかかわらず、他のルーチンの他のすべての属性が示されています。
コンストラクターがルーチンではないことを指摘しているのは、インスタンスごとに 1 回しか呼び出せないことです。
この質問に明確な答えがあるのか 、それとも理論ごとに定義が異なるのかはわかりません.
誰かがこの意味論的な質問についての文献へのポインタを与えることができれば幸いです.
一番
編集:私たちの言語で特定のものに名前を付ける方法に関するいくつかの情報:
- 機能と手順があります。関数には戻り値がありますが、プロシージャにはありません。
- コンストラクターは、名前のないプロシージャのようなものです (明示的な戻り値はありません)。
- コンストラクターは暗黙的と呼ばれ、Java のように:
x := new X(1, new Y())
- パラメーターは、コンストラクターの定義中に定義されます。独自のインスタンス (
this
) はパラメーターとは見なされませんが、暗黙的に提供されます
これまでの回答に感謝します。彼らはプロセスを支援しています。