3

私は次のプレゼンテーションを読んでいました: http : //wingolog.org/pub/qc-2012-js-slides.pdfは、Javascriptの最適化で使用される手法としての(4,10,19)インラインASM生成について説明しています。

次の論文 では、 https ://sites.google.com/site/juliangamble/Home/Compilers%20Tutorial%202006-09-16.pdf?attredirects = 0&d = 1の30ページと31ページで、スキームを使用して生成する方法について説明しています。後続のOSプロセスでリンクおよび実行されるASM。

ASMを生成し、既存のプロセス内で実行するシナリオはどうですか?(つまり、後続のリンクはなく、別々のステップで実行されます)。

これは、(たとえばCで)ASMを生成し、バイトをメモリ領域(データとしてコード)に書き込み、関数ヘッダーを追加して返す(C呼び出し元と互換性がある(ページに表示されるものと同様))に帰着すると思います上記のGoloumペーパーの3)次に、そのデータポインターを取得し、それを関数ポインターに変換して呼び出します(コードとしてのコード-データとしてのコードから)。

私の質問は次のとおりです。

(a)このインラインコードの生成と実行の用語は何ですか?

(b)これの簡単な「helloworld」Cの例はありますか?

4

1 に答える 1

1

ここにはかなり良い例があります。ここでも、自己変更コードの用語を使用しています。

ここにもう1つ。

ここでは、4つのカテゴリ(ユースケース)を示しています。

  • 変成作用
  • トランポリン
  • JITコンパイル
  • セキュリティへの影響(安全でないコーディング/マルウェア)

ここでLISPが本当に自己修正的であるかどうかについての議論があります-そして彼らはそうではないと結論することになります。

于 2012-08-30T02:34:35.887 に答える