2016-11-07 2 views
-1

私たちのほとんどが知っているように、コンパイラを作成するのはいつも大変な作業です。私はどのライブラリがJavaやCなどのアプリケーションに適しているのだろうかと思います。ここで見ている問題は、JavaはC言語に比べてかなり長いですが、制御の自由度が増していることです。 Cは短くコンパイル時にはおそらく高速ですが、ASは多くの制御ができません。意見には、どちらがより良いアプリケーションを持っていますか?コンパイラの構築コンパイラ設計に適したアプリケーションはどれですか?

+0

'このようなライブラリは、そのようなことを行うために優れたアプリケーションを持っています。'つまりコンパイラを書くことは無意味です。コンパイラを書く* * * *の方が簡単ですか? – EJP

答えて

0

は、主にどちらの言語で提供されている標準ライブラリにネイティブでないアルゴリズムとデータ構造を必要とします。

  • 語彙素
  • マルチ出口ステートマシンに多くの正規表現を構成することにより、語彙の抽出を構文や建物のASTをチェックするための語彙素
  • 抽象構文木
  • パーサの
  • ストリーム
  • コントロールフローグラフ
  • コントロールフロー構築
  • ... ...もっと多くの

かなりあなたは構造体やオブジェクトとしてこれらのデータ型のすべてを定める終わるコンパイラを構築するために多くの、そして手アイデアを実装するコードを書く。

したがって、このタスクにはCまたはJavaのどちらも「使いやすい」ものではありません。

注意してCバージョンは、同等のJavaバージョンよりも高速です。

本当にコンパイラをすばやく作成したい場合は、これらの構造とアルゴリズムを提供するツールまたはフレームワークを見つける必要があります。such as our DMS Software Reengineering Toolkitのように、それらをすべて作成する必要はありません。

関連する問題