コンパイラ設計チュートリアル
コンパイラは、プログラムの意味を変更せずに、ある言語で記述されたコードを他の言語に変換します。また、コンパイラーは、ターゲットコードを効率的にし、時間とスペースの観点から最適化する必要があることも期待されます。
コンパイラーの設計原則は、翻訳および最適化プロセスの詳細なビューを提供します。コンパイラの設計は、基本的な変換メカニズムとエラーの検出と回復をカバーしています。これには、フロントエンドとしての字句解析、構文解析、および意味解析、およびバックエンドとしてのコード生成と最適化が含まれます。
コンパイラの設計を学ぶ理由
コンピューターは、ソフトウェアとハードウェアのバランスの取れた組み合わせです。ハードウェアは単なる機械装置であり、その機能は互換性のあるソフトウェアによって制御されています。ハードウェアは、ソフトウェアプログラミングのバイナリ言語に対応する電荷の形で命令を理解します。バイナリ言語には、0と1の2つのアルファベットしかありません。指示するには、ハードウェアコードをバイナリ形式で記述する必要があります。これは、単純に1と0のシリーズです。コンピュータープログラマーがそのようなコードを書くことは困難で面倒な作業になるでしょう。それが私たちがそのようなコードを書くためのコンパイラーを持っている理由です。
言語処理システム
私たちは、どのコンピュータシステムもハードウェアとソフトウェアでできていることを学びました。ハードウェアは、人間が理解できない言語を理解します。そのため、私たちは高水準言語でプログラムを作成します。これは、私たちが理解し、覚えやすいものです。これらのプログラムは、一連のツールとOSコンポーネントに入力され、マシンで使用できる目的のコードを取得します。これは言語処理システムとして知られています。
聴衆
このチュートリアルは、コンパイラの基本原理を学びたい学生を対象としています。コンパイラについてもっと知りたい、またはコンパイラを自分で設計したいという熱心な読者は、ここから始めることができます。
前提条件
このチュートリアルでは、コンパイラの設計に関する予備知識は必要ありませんが、C、Javaなどの少なくとも1つのプログラミング言語の基本的な知識が必要です。アセンブリプログラミングに以前に触れたことがある場合は、追加の利点になります。