問題タブ [abstract-machine]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
functional-programming - SECDマシンでは、「ラップ」はどのように機能しますか?
ウィキペディアの説明に基づいて、C#でSECDマシンのシミュレーターを作成しています。基本的な操作は完了しましたが、命令の実装方法がわかりません。rap
ウィキペディアでは、次のように述べていrap
ます。
rapはapのように機能しますが、ダミー環境の発生を現在の環境に置き換えるだけで、再帰関数が可能になります。
そしてap
それは言う:
apは、スタックからクロージャとパラメータ値のリストをポップします。クロージャーは、その環境を現在の環境としてインストールし、その前にパラメーターリストをプッシュし、スタックをクリアし、Cをクロージャーの関数ポインターに設定することによってパラメーターに適用されます。S、Eの前の値、およびCの次の値がダンプに保存されます。
これが私の実装ですap
List
これがLispスタイルの「cons」セルの実装であることに注意してください。
私を混乱させるのは、正確にどのようにrap
違うのap
ですか?たとえば、環境レジスタ(E)は正確にどうなりますか?ウィキペディアの定義が少し曖昧で、それをうまく説明するものを他に見つけることができませんでした。
delphi - Delphi 用の無料の Warren Abstract Machine 実装はありますか?
私は徹底的な検索を行いましたが、それでも無駄でした。
参照:
ウォーレン抽象機械(ウィキペディア)。
質問:
そのような実装(オープンソース)はありますか?
そうでない場合は、他の言語で書かれた適切なソリューションをラップするソリューションの回答を受け入れる傾向があります(リンクするDllおよび/またはobjファイル、Prolog.NETについて知っています:提案しないでください)。
jvm - Java バイトコードの抽象マシン
Java バイトコードを実行できる抽象的なマシンに詳しい人がいるかどうか疑問に思っていました。拡張できるものを探していることに注意してください。抽象マシンとは、セマンティクスを指定する必要があるため、JVM を意味するものではありません。
具体的には、実際に自分ですべての命令をシミュレートする必要なく、特定の時点でスタックに何があるかを追跡する方法を探しています。これに適したフレームワークを知っている人はいますか?
java - 式をそのコンポーネントとサブコンポーネントに解析します
次のような式を解析する必要があります。neg(and(X,Y))
上記の例のように、Abstract Stack Machine Code を出力する必要があります。
しかし、今のところマシンコードは問題ではありません。式の入力文字列をすべてのサブ式に解析/分割するにはどうすればよいですか?
最初のブラケットを見つけて、それから最後のブラケットに連結しようとしましたが、内部式がある場合は問題が発生しますか?
私が試したコード:(まだ開発段階にあるのではないでください)
私は基本的な解決策を探しているだけです, それはする必要があります: and, or, neg
c++ - C++ 配列とポインターの sizeof の結果
x86_64 アーキテクチャでは、ポインターは 8 バイトです。sizeof(x)
8 を返す必要があるのは理にかなっています。 achar
は 1 バイトであり、5 バイトは array のサイズであることを理解していますz
。sizeof(z)
8 を返さない理由の背後にある直感は何ですか?