# HG changeset patch # User anatofuz # Date 1611667894 -32400 # Node ID 86c42a4c8a0dc7bf0fc1d27832dfd0c4d13e8218 # Parent 6e33e74d378fd1764ed81ab60c6d119d4787c4d2 ... diff -r 6e33e74d378f -r 86c42a4c8a0d paper/chapter/02-perl.tex --- a/paper/chapter/02-perl.tex Tue Jan 26 21:00:50 2021 +0900 +++ b/paper/chapter/02-perl.tex Tue Jan 26 22:31:34 2021 +0900 @@ -102,7 +102,7 @@ 入力として与えられているCodeGearは、Interfaceに定義されているCodeGearの引数として表現されている。 コードに示す例では、\texttt{whenEmpty}は入力して与えられているCodeGearである。 雛形を生成する場合は、入力として与えられたCodeGearを除外して出力を行う。 - +順序はInterfaceをまず出力した後に、 Impl側を出力する。 雛形生成では他にコンストラクタの生成も行う。 GearsOSのInterfaceのコンストラクタは、 メモリの確保及び各変数の初期化を行う。 @@ -113,4 +113,7 @@ コンストラクタはデフォルトでは変数は0、またはNULLで初期化される。 このスクリプトで生成されたコンストラクタは\texttt{generate\_stub.pl}内でも自動的に生成することが可能である。 -そのため、 オーバーライドする必要がない場合は削除しても問題なく動作するようになっている。 +しかし明示的にコンストラクタが書かれていた場合は、 Perlスクリプト内での自動生成は実行しないようになっている。 +これはオブジェクト指向言語のオーバーライドに相当する機能と言える。 +いくつかのInterfaceでは入力にContext以外のものを要求しており、こういった引数のAPIを変更する際もオーバーライドする必要がある。 +あくまで雛形生成スクリプトはプログラマ支援であるため、 いくつかの手動での実装は許容している。 diff -r 6e33e74d378f -r 86c42a4c8a0d paper/master_paper.pdf Binary file paper/master_paper.pdf has changed