# HG changeset patch # User Nobuyasu Oshiro # Date 1321569929 -32400 # Node ID fc26e9b8551fb4250202bb1d9a5ceac6f7c15eed # Parent 857b03a6ff0628aa95742f46c9d49be060990c9d modify tex diff -r 857b03a6ff06 -r fc26e9b8551f nobu-graduation.tex --- a/nobu-graduation.tex Wed Nov 16 11:31:44 2011 +0900 +++ b/nobu-graduation.tex Fri Nov 18 07:45:29 2011 +0900 @@ -133,12 +133,15 @@ %そこで typedefrec の付いた関数は先行して宣言を行うことにする。 %すると、宣言中でもハッシュテーブルから関数の情報をとることができるようになる。 -\subsection{\_\_return 変数} +%\subsection{\_\_return 変数} +\subsection{環境付き継続} CbC では通常の C の関数からコードセグメントに継続する際、 -元の C の関数に処理を戻すことがように \_\_return 変数が用意してある。 -\_\_return 変数は参照した関数のアドレスを覚えておく変数である。 -コードセグメントの継続の際に引数で渡して扱う。 -引数として渡された \_\_return 変数をコードセグメントとして使うことで C の関数に戻る。 +元の C の関数に処理を戻すことがように環境付き継続を実装してある。 +環境付き継続は \_\_return 変数を参照することで用いることができる。 +\_\_return 変数は参照されると、参照した関数のアドレスを覚えておく。 +コードセグメントの継続の際に引数に \_\_return 変数を渡すことで、 +関数の呼び出し元のアドレスも渡すことができる。 +後は引数として渡されたきたアドレスへ飛ぶことでいつでも C の関数に戻ることができる。 \subsubsection{\_\_return 変数の問題} しかし現在この \_\_return の値は static で実装されている。