\r\n\r\n

フェーズとコンパイラーに渡すの違い

一般的にコンパイラは、ある言語(ソース言語と呼ぶ)で書かれたプログラムを読み、別の言語(ターゲット言語と呼ぶ)に翻訳するコンピュータプログラムである。従来は、ソース言語がc++などの高級言語、ターゲット言語がアセンブリ言語などの低級言語であった。一般に、コンパイラはある言語から別の言語への翻訳者と見なすことができる。コンパイラがよく使う用語にpassとphaseがある。コンパイラ通過回数とは、コンパイラがソースコード(またはその表現形式)を通過する回数のことです。構築しやすいように、コンパイラはパーツに分けられています。

ステージとインカミングコンパイラの比較

一般的にコンパイラは、ある言語(ソース言語と呼ぶ)で書かれたプログラムを読み、別の言語(ターゲット言語と呼ぶ)に翻訳するコンピュータプログラムである。従来は、ソース言語がC++などの高級言語、ターゲット言語がアセンブリ言語などの低級言語であったが、現在は、ソース言語がC++などの高級言語、ターゲット言語がアセンブリ言語などの低級言語となっている。一般にコンパイラは、ある言語から別の言語への翻訳者と見なすことができる。コンパイラがよく使う用語として、PassとPhaseがある。コンパイラパス回数とは、コンパイラがソースコード(またはその表現形式)を通過する回数のことです。コンパイラを簡単に構築するために、コンパイラはいくつかの部分に分かれています。phaseは、そのような分離されたコンパイラの部分を呼び出すためによく使われます。

コンパイラーでは何が通っているのでしょうか?

コンパイラを分類する標準的な方法は、「パス」の数によって分類することである。一般に、コンパイルは比較的資源を必要とする作業であり、当初、コンピュータはそのような完成されたプログラムを保持するのに十分なメモリを持っていなかったのである。初期のコンピュータのハードウェア資源には限界があったため、コンパイラは、ソースコードを調べ(ソースコードなどを「渡す」)、解析、変換、翻訳といった別々の作業を行う小さなサブルーチンに分解され、それぞれの役割を担っていた。したがって、この分類によれば、コンパイラは1パスコンパイラとマルチパスコンパイラに識別される。

ワンパスコンパイラとは、その名の通り、1回の処理でコンパイルするものです。ワンパス・コンパイラは、マルチパス・コンパイラよりも書きやすく、また実行速度も速い。そのため、リソースが限られている場合でも、1パスでコンパイルできるように言語が設計されている(例:Pascal)。一方、一般的なマルチパスコンパイラは、いくつかの主要なステージで構成されている。最初の段階はスキャナ(別名:字句解析器)で、プログラムを読み込んで一連のトークンに変換する。第2段階はパーサーである。トークン文字列を解析木(または抽象構文木)に変換し、プログラムの構文構造を把握します。次の段階は、構文構造の意味論的解釈である。コードの最適化フェーズと最終的なコード生成フェーズは、以下のステップを踏みます。

コンパイラのステージは?

コンパイラ構築の話をするときに、よく出てくるのが用語の段階です。当初、コンパイラは、簡単な言語をコンパイルするために、人が書いた1つのモノリシックなソフトウェアの各単純な部分であった。しかし、翻訳する言語のソースコードが複雑で大規模になると、コンパイラは複数の(比較的独立した)フェーズに分解されるようになった。異なるフェーズを持つことで、コンパイラの開発をチームで行えるという利点があります。さらに、フェーズによる改善やコンパイラへの追加フェーズ(さらなる最適化など)を可能にすることで、モジュール性と再利用性を向上させます。カーネギーメロン大学のPQCC(Production Quality Compiler Compiler Project)では、コンパイルをフェーズに分けるプロセスを説明しています。フロントエンド、ミドルエンド、バックエンドという言葉が紹介されています。多くのコンパイラは、少なくとも2つのフェーズを持つ。しかし、通常はバックエンドとフロントエンドがこれらのフェーズをカプセル化しています。

ステージコンパイラとインカミングコンパイラの違いは何ですか?

  • 2020-11-05 14:59 に公開
  • 閲覧 ( 23 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ