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

コンパイラは、人間が読めるテキストファイルをコンピューターがより簡単に理解できる形式に変換する特別な種類のコンピュータープログラムです。 最も基本的なレベルでは、コンピューターは1と0の2つのことしか理解できません。このレベルでは、人間は非常にゆっくりと動作し、1と0の長い文字列に含まれる情報を理解できません。 コンパイラは、このギャップを埋めるコンピュータープログラムです。

当初、コンパイラは、シンボルをビット 、1と0のみに変換できる非常に単純なプログラムであり、コンピューターが理解していました。 プログラムも非常にシンプルで、最初は手でコンピューターが理解できるデータに変換された一連のステップで構成されていました。 これは非常に時間がかかるタスクであったため、このタスクの一部は自動化またはプログラミングされ、最初のコンパイラが作成されました。 このプログラムは、ステップごとのプログラムを実行するために必要なステップをアセンブルまたはコンパイルしました。

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

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

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

プログラムを理解する上でコンパイラを制限するエラーは、 構文エラーと呼ばれます 。 プログラムが機能する方法のエラーは、 論理エラーと呼ばれます。 論理エラーを見つけて修正するのははるかに困難です。 構文エラーはスペルミスに似ていますが、論理エラーは文法エラーに少し似ています。

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

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

他の言語

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

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