このページは、なんかごちゃまぜなんですが。。。それもそのはずで、原文3章のちっちゃなセクションの解説で、グルーピング難しいもん、まとめちゃいました。。。
ということで、以下関連なっしんぐですが、まぁということで。
「仲介関数(Trampolines)」って何?が大半だと思うのです。ということで、まずそこから。
そうです。例としては、呼び出し方や呼び出す際のデータの引渡し方法を、呼び出す先の関数/サブルーチンに合わせるために、引数や戻り値を調整するようなパターンみたいです。
で、このTrampolineルーチンのDWARF表現を見て行きます。
パターン番号 | データクラス名 | 意味 |
パターン1 | reference | 仲介して最終的に呼び出す関数/サブルーチンのDIE(DW_TAG_subprogram/DW_TAG_inlined_subroutine」への参照 |
パターン2 | address | 仲介して最終的に呼び出す関数/サブルーチンの再配置後のマシン命令アドレス |
パターン3 | string | 仲介して最終的に呼び出す関数/サブルーチンのソース上での名称 (なお、C++の様に関数/サブルーチン名をコンパイラが調整/加工する言語の場合は、加工後の名前が一般的に使われる) |
パターン4 | flag | ”Trampolineルーチン”が仲介して最終的に呼び出す関数/サブルーチンの中に組み込まれ、別関数/サブルーチンの枠組になっていないケースの場合、”true”となる。 |
なお、以下は”Trampolineルーチン”に関する原文記述の備考書きです。ご参考マデ。
語彙ブロックとは、恐らく、CやC++での{と}で括られる塊、のことです。(恐らく、と書いたのは、翻訳に自信がないためです。。。)
CやC++では、関数やif/for/whileなど、{と}を文法として要求するものの中に、文法としての要求はされないものの、ひとまとめにするという意味で{と}で括ったブロックを作ることができます。
語彙ブロックとは、恐らくだけど、この文法では要求されていないが、プログラマの趣味?でまとめた{と}の塊、のことだと思われます。
まぁ、詳細はちゃんと調査必要なんでしょけど、とりあえず、以下この前提で詳細です。
これは、ズバリC言語のGotoラベルです。
これは、Pascal/Modula2言語での”With句”の表現方法です。
[PageInfo]
LastUpdate: 2013-09-08 16:08:31, ModifiedBy: koinec
[License]
FreeBSD Documentation License
[Permissions]
view:all, edit:members, delete/config:members