問題タブ [intermediate-language]

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.

0 投票する
1 に答える
78 参照

javascript - Javascript オブジェクト表現形式

コンパイラの IR 表現では、デカルト積を使用して関数型を表現できることがわかっています。

例えば:

関数型は(int × double)->intのように表すことができます。

(ここでは、すべてのタイプが既知であると仮定していることに注意してください)

したがって、次のようにJavascriptでオブジェクトを宣言すると

Javascript のオブジェクト型であるobjを表す正式な表現はありますか?

ありがとうございました。

0 投票する
0 に答える
64 参照

c - 中間コード/3 アドレス コードで加算演算はどのように見えますか?

次のように関数を書くと

コンパイラは return ステートメントを 3 つのアドレス コード/中間コードでどのように表現しますか? する

私の解釈では、最初のケースではiが追加され、次にi-1をパラメーターとしてsumが再帰的に呼び出され、他のケースではiをパラメーターとしてsumが呼び出され、 i-1が追加されます。そうですか?誰かがコンパイラレベルで何が起こるか説明できますか?

また、1)と2)を次のように変更するとどうなりますか

再帰的な意味で何が起こりますか?無限ループになると思いますが、 i-- はどうですか?

0 投票する
3 に答える
380 参照

c++ - 特定の IR をアーキテクチャ固有のコードにコンパイルするために構築された LLVM の代替ライブラリはありますか?

私は、必要な IR の仕様を提供し、その IR を含むファイルをマシン コードにコンパイルするためのプログラムを提供するライブラリがあるかどうかを尋ねています。LLVM を使用したくない理由は次のとおりです。

  • IR を生成するコードを自分で書きたいと思っています。

  • LLVM 開発ライブラリをインストールするのは、私が別のコンピューターで作業しているときは、ちょっと面倒です。

  • LLVM を使用すると、プログラマーは IR を生成でき、アセンブリへのコンパイルを心配する必要がないので、この機能が必要です。

0 投票する
1 に答える
300 参照

.net - MSIL (CIL) キーワードのドットについて

私は MSIL (CIL) コード カラーライザーに取り組んでいますが、MSIL にはあまり詳しくありません。

Common Language Infrastructure (CLI)ですべてのキーワードのリストを見つけました。

これらのキーワードには、、、、などがaddあります。.fileconv.i4unaligned.

ドットがキーワードの一部であることに少し苦労しています。私はドットがキーワードの一部である必要があると確信していますi4. そして、いくつかのキーワードの先頭にあるドットをキーワードの一部にしたいと確信しています。

しかし、最後のドットなど、末尾にドットが付いているいくつかのものはどうでしょうか? 末尾のドットがキーワードの一部である理由はありますか?

0 投票する
1 に答える
4279 参照

c# - C# が直接マシン コードにコンパイルされないのはなぜですか?

CIL はオブジェクト指向のアセンブリ言語であり、完全にスタックベースです。そのバイトコードはネイティブ コードに変換されるか、最も一般的には仮想マシンによって実行されます。

なぜ CIL が必要なのですか? CIL の代わりに C# をネイティブ コードに変換することはできませんか? すべての .Net 言語が CIL にコンパイルされる場合、IL の代わりに C# が使用されないのはなぜですか? CIL は C# や VB よりも表現力がありますか?

0 投票する
0 に答える
110 参照

c++ - c++ から LLVM バックエンドの出力を効率的に呼び出すことはできますか?

LLVMフロントエンドが利用可能なプログラミング言語でいくつかのロジックを書き留めたとしましょう。このロジックをいくつかの C++ アプリケーションで再利用したいと考えています。一般的な LLVM バックエンドを使用してある種のライブラリを生成し、パフォーマンスを大幅に低下させることなくアプリケーションから呼び出すことはできますか? このユースケースに対処する方法に関するヒントはありますか?

0 投票する
0 に答える
150 参照

abstract-syntax-tree - インテルの icc コンパイラーは AST、CFG、IR を生成できますか?

clang を使用する場合、clang が生成する抽象構文ツリー (AST)、制御フロー グラフ (CFG)、および LLVM IR を調べると役立つことがわかりました。

Intel の icc コンパイラ (バージョン 15.0.2) を調べ始めましたが、同じアーティファクトを生成できるかどうか、またはどのように生成できるかを示すドキュメントが見つかりません。

私が見つけた最も近いものは、とりわけ IR を含むファット リンク時オブジェクトを生成できることです。しかし、IR がユーザーにとって理解しやすいものであることを示唆するものは何も見当たりません。

これらのアーティファクトをiccから取得する方法があるかどうかは誰にもわかりませんか?