コンパイラとは何ですか?

コンパイラは、人間の読み取り可能なテキストファイルをコンピューターがより簡単に理解できるフォームに変換する特別なタイプのコンピュータープログラムです。 最も基本的なレベルでは、コンピューターは2つのことしか理解できません。1と0。 コンパイラは、このギャップを橋渡しするコンピュータープログラムです。

最初は、コンパイラはシンボルをビット、1sおよび0sにのみ翻訳できる非常にシンプルなプログラムでした。 プログラムも非常にシンプルで、元々はコンピューターが理解できるデータに手で翻訳された一連の手順で構成されていました。 これは非常に時間のかかるタスクであったため、このタスクの一部は自動化またはプログラムされており、最初のコンパイラが作成されました。 このプログラムは、ステップバイステッププログラムを実行するために必要な手順を組み立て、コンパイルしました。

これらのシンプルなコンパイラは、より洗練されたコンパイラ。 新しいバージョンを使用すると、より多くのルールをコンパイラプログラムに追加して、人間のプログラマーがより自然な言語構造を操作できるようにすることができます。 これにより、執筆プログラムが容易になり、より多くの人々がプログラムを書くことができました。 より多くの人々がプログラムを書き始めたとき、より洗練されたコンパイラを作るために、プログラムの執筆に関するより多くのアイデアが提供され、使用されました。 このようにして、コンパイラプログラムは進化し、改善し、使いやすくなり続けています。

コンパイラプログラムも専門化できます。 特定の言語構造は他のタスクよりも特定のタスクに適しているため、特定のタスクまたは言語用に特定のコンパイラが開発されました。 一部のコンパイラは、多段階または多重パスです。 最初のパスは非常に自然な言語を取り、コンピューターの理解可能な言語に近づくことができます。 2番目または3番目のパスでさえtができます実行可能ファイルである最終段階にakeします。

多段階コンパイラの中間出力は、コンピューターで使用できないため、通常 pseudo-code と呼ばれます。 擬似コードは、コンピュータープログラムのように非常に構造化されており、自由に流れるのではなく、より自然な言語のように冗長です。 最終出力は、コンピューターによって実際に実行または実行されるものであるため、実行可能ファイルと呼ばれます。 このようにタスクを分割すると、各サブタスクが異なるため、より洗練されたコンパイラを簡単に書き込むことができました。 また、コンピューターが何を求められているかを理解するのに苦労した場所をコンピューターが指摘しやすくなりました。

コンパイラがプログラムを理解する際に制限する

エラーは、構文エラーと呼ばれます。 プログラムの機能の方法のエラーロジックエラー。 ロジックエラーは、見つけて修正するのがはるかに困難です。 構文エラーはスペルミスのようなものですが、ロジックエラーは文法エラーのようなものです。

クロスコンパイラプログラムも開発されています。 クロスコンパイラを使用すると、特定のメーカーによって設計されたあるコンピューター向けに記述されたテキストファイルセットを、別のメーカーが別のコンピューターでコンパイルして実行するように設計されています。 たとえば、Intelコンピューターで実行するために書かれたプログラムは、Motorolaが開発したコンピューターで実行するためにクロスコンパイルされる場合があります。 これは頻繁にうまく機能しません。コンピュータープログラムが動作するレベルでは、コンピューターハードウェアがあなたに似ている場合でも、非常に異なって見えることがあります。

クロスコンピレーションは、あるコンピューターが別のコンピューターをエミュレートすることとは異なります。 コンピューターが別のコンピューターをエミュレートしている場合、それは他のコンピューターのふりをしています。 2つのプログラムが一度に実行されているため、エミュレーションはクロスコンピレーションよりも遅くなることがよくあります。これは、他のコンピューターと実行中のプログラムのふりをしているプログラムです。 ただし、クロスコンピレーションが機能するには、両方が必要ですプログラムと、プログラムが異なるコンピューターで実行するために機能することができる元のコンピューターと十分に類似したコンピューターを説明する元の自然言語テキスト。 これは常に可能であるとは限らないため、両方のテクニックが使用されています。

他の言語

この記事は参考になりましたか? フィードバックをお寄せいただきありがとうございます フィードバックをお寄せいただきありがとうございます

どのように我々は助けることができます? どのように我々は助けることができます?