vm-implementation

    5

    2答えて

    私はローカル最適化コンパイラのテクニックについて読んできましたが、実装方法が分かりません。考え方は、オプティマイザが毎回コードの「ウィンドウ」を見て、何らかの形でパターンを検出し、それらをより最適化されたバージョンに置き換えるというものです。 私の質問は、どのように1は、これらのパターンを発見するんですか? (あなたのプラットフォームが、SchockenのHackのような組み立てられたコンピュータ

    11

    2答えて

    私はV8の隠れたクラスについていくつかの記事を読んだ。しかし、私はまだ私の頭の中でいくつかの質問を持っている: 、のは言わせた場合は、二つのオブジェクトがあります。 var a = { } a.x = 5 a.y = 6 var b = { } b.y = 7 b.x = 8 は、彼らが1は0 + x + yを行って、という理由だけで、同じ隠しクラスまたは個別で終わるん。他の0 +

    7

    2答えて

    私はLuaのソースコードを読んでいましたが、驚いたことにはそれがいくつかの奇妙な命令(例えばGETUPVAL、FORLOOPなど)を生成するために実装されていることがわかりました。次に、これらのオペコードは仮想マシンによって実行されます。 純粋なASTベースのインタプリタと比較して、これを行う利点はありますか? ありがとう。

    5

    1答えて

    今日のほとんどすべての従来の言語は、テキストソースとしてのプログラマの意図を表しています。(単純化のために)いくつかのバイトコード/ VM/CPUによって解釈/実行される。 VMの実行時間を「フリーズ」し、環境をダンプ/シリアライズする(シンボルのバインディング、状態、コード(それが何であれ))何らかの理由で、イメージを転送し、ロードして実行することができます。 したがって、通常の方法でコードを「

    6

    1答えて

    私はレジスタベースとスタックベースの仮想マシンがどのように独立して動作するかを知っています。私は両方の長所と短所を知っています。私が知りたいことは誰もが2つをマージしようとしたことですか? このような仮想マシンの存在についてネットを検索しようとしましたが、無駄です。私が得た最良の結果は、ハイブリッド仮想マシン(HyVM)に関する記事でした。このような仮想マシンが実際にプログラミング言語用に作成され

    5

    1答えて

    私は現在、ペット用のプログラミング言語(学習目的のため)で働いており、昨年多くの研究を経ています。そのような言語の概念をモデル化する。まず第一に、JVMや.NETバイトコードなどの中間形式にコンパイルしたいと考えています。目標はマルチプラットフォーム/アーキテクチャに互換性があります。第二に、私はそれが速いことを望んでいます(私は他にも多くのことを念頭に置いていますが、その話題の目的ではありません

    7

    2答えて

    我々は、オブジェクト・テーブルを使用し、何が起こるかを見るためにファロのVMを変更したい大学のプロジェクトとして、コンテキスト を変更します。 pharo-vm clone from githubとVMMakerを使用します。 VMの構築はうまくいきます。始めるため 我々はインクリメント整数を返すというプリミティブを追加しました: InterpreterPrimitives>>primitiveI

    1

    2答えて

    ClojureやHaskellのように、ユーザに見える主なデータ構造(リスト、配列、マップ、セットなど)が不変である「小さな」VMがありますか? "小さな"とは、実装の簡潔さ、簡潔さ、移植性が重要なポイントであるVMを意味します:LuaまたはTinySchemeと考える。

    18

    3答えて

    は、私は今、私は通訳やコンパイラの違いを知っているが、の仮想マシン前の2から程度異なっているものをインタプリタ、コンパイラとVM について質問がありますか?インタプリタとコンパイラよりもVMの長所と短所は何ですか? どうもありがとう

    -1

    1答えて

    複数の言語を保持できる仮想マシンを設計する方法を学びたいと思います。たとえば、Scalaは古いJavaライブラリとネイティブに相互作用できます。