trampolines

    0

    1答えて

    私は、WinAPIフック関数でデータをバイパス/実行するためにフラムとトランポリンの概念を学びました(別の実行可能ファイルで、DLL注入)。これまでのところ、私はアセンブリとCの混合物を使ってトランポリンとフックを作る方法を知っていますが、私は何かが欠けているように、Cを使うだけではできないようです。誰かが私が間違ってやっていることやそれをどうやって解決するか教えてもらえればと思っています。 は今

    2

    1答えて

    私はSICPのメタ円形評価基準に基づいておもちゃのpython Schemeインタプリタを書こうとしています。 Pythonは限られた深さのコールスタックしかサポートしていないので、テールコールを排除する必要があります。私はトランポリンについて読んで、そのパーサーを実装しました。 しかし、アナライザ/エバリュエータ機能をトランポリンと一緒に使用するために継続的な通過スタイルで書く方法はわかりません

    11

    1答えて

    私はフックに興味があり、私はいくつかの機能をフックできるかどうかを見極めることにしました。私は迂回路のような図書館を使うのに興味がありませんでした。自分でそれをやってみたいという経験がありたいからです。私はインターネット上で見つけたいくつかの情報源を使って、以下のコードを作成することができました。基本的ですが、それは問題なく動作します。しかし、複数のスレッドによって呼び出される関数をフックすると、

    18

    2答えて

    私が正しく理解していれば、scala.util.control.TailCallsを使用して、トランポリンを使用して非末尾再帰関数のスタックオーバーフローを回避できます。 APIに与えられた例は単純です:あなたは recursve呼び出しの後にいくつかの操作を行いたい場合 import scala.util.control.TailCalls._ def isEven(xs: List[Int

    0

    1答えて

    以下のトランポリンコードでは、マイボタンから onclick = export(add,5)を私のビューに表示します。この呼び出しが、5の値を返さないようにするにはどうすればよいですか?下のコードで//x=0の行をコメント解除しないでください。 var x = 0; function repeat(operation, num) { return function() {

    2

    1答えて

    に私は、メタプログラミングの本を読んでいますし、離脱はトランポリンの上にあります: struct generic_t { void* obj; void(*del)(void*); }; template <typename T> // outer template parameter generic_t copy_to_generic(const T& value)

    1

    3答えて

    代わりに、このようなベクトルを作成する: std::vector<int> v1{1,2,3}; std::vector<double> v2{1.1,2.2,3.3}; std::vector<Object> v3{Object{},Object{},Object{}}; 私は、一般的な機能でそれらを作成したいと思います: std::make_pairと std::ma