情報処理のWeb教科書―IPA情報処理試験対策のお供に!
トップ 情報処理の知識体系 テクノロジ系 基礎理論 情報に関する理論 コンパイラ理論
コンパイラとは何か、コンパイラ理論、コンパイラによる最適化の仕組みついてまとめています。無料でダウンロードできるc言語のコンパイラの紹介やコンパイラ言語とインタプリタ言語の違いなどをまとめています。
以下は目次リンクになります。
コンパイラとはとは何か、コンパイラの役割を見ていきます。
コンパイラの役割は、高水準言語で記述された原始プログラムを機械語などに変換するプログラムのことをいいます。 この処理過程のことをコンパイルといいます。
コンパイルの過程やコンパイラの字句解析処理、構文解析処理などコンパイラの仕組み、最適化の仕組みについて見ていきます。
コンパイラは以下のような手順で処理します。
コンパイラの字句解析処理は、原始プログラムの文字列から字句を切り出す処理です。 字句は、日本語や英語などの一般の言語で言えば単語にあたり、構文を構成する最小単位です。 字句は、名前、予約語、定数、区切り記号などを目安に解析されます。
コンパイラの構文解析処理は、切り出された字句の構成を検証する処理です。 文法に従っているかどうかを検査します。
コンパイラで構文解析した結果の表現方法の一つに4つ組み形式があります。
(演算子,被演算子1,被演算子2,結果)
この形式は、被演算子1と被演算子2に演算子を作用させたものが結果であることを表わします。
次の一連の4つ組は、どの式を構文解析した結果をもとめてみます。 T1、T2、T3、T4は一時変数を表わします。
(*,B,C,T1) (/,T1,D,T2) (+,A,T2,T3)
与えられた形式に関する記述を理解し、式をたどってみます。
①(*,B,C,T1) ⇒ T1=B*C
②(/,T1,D,T2) ⇒ T2=T1/D
③(+,A,T2,T3) ⇒ T3=A+T2
①、②より
T2=B*C/D …④
④、③より
T3=A+B*C/D
以上より、答えはA+B*C/Dになります。
コンパイラの意味解析処理は、属性間に矛盾が生じていないかどうかを検査する処理です。 例えば、文字型と宣言されている変数が算術式に含まれていれば、意味上の誤りとして検出します。
コンパイラの最適化の主な目的はプログラムの実行時間を短縮することです。
コンパイラの最適化処理は、目的プログラムの実行時間や容量が少なくなるように、 プログラムの冗長性を排除するように、プログラムに変更を加える処理です。
コンパイラのコード生成処理は、中間言語による表現や機械語やアセンブラの目的プログラムを生成します。
ひと昔前は学習用としては、Borland C++コンパイラが主流でしたがなかなか入手がしづらい状況になりました。 ですが、gccというLinux系のOSではプロが使う無料のOSS製品がWindowsでも使えるようになり、ダウンロードからインストールまでもハードルが低く学習ようとして今までよりもいい環境になりました。
Windowsでも使えるフリーソフトのgccコンパイラで学ぶC言語入門用のオリジナルテキストをまとめています。 フリーソフトのgccコンパイラのインストール方法や基本文法はもちろんですが、分割コンパイルやヘッダーファイルの作成方法など入門者にとって気になる内容もまとめています。
プログラムは、ソースコードという人間がわかるコードを書きます。C言語やアセンブラ、あるいはPHPやJavaScript、HTMLなどの言語でソースコードを書きます。 ソースコードはあくまでも人間のわかるコードで、コンピュータではそのまま実行できません。 コンピュータがわかるコードに変換する必要があります。またこれらのソースコードのプログラムを動かすまでの方法は異なります。
コンピュータがわかるコードを機械語といいます。ソースコードから機械語に変換する処理のことをコンパイルといいます。 コンパイラするプログラムがコンパイラということです。
C言語やアセンブラなどのプログラミング言語では、コンパイルしたコードを用意してからプログラムを実行します。 コンパイルという作業があるプログラミング言語であるため、コンパイラ言語といわれます。
PHPやJavaScriptなどのプログラミング言語では、コンパイルは意識せずソースコードを実行時にPHP実行環境やブラウザなどがコンパイルを行って実行します。 実行時にコンパイルしプログラマがコンパイルする作業がないという特徴からインタプリタ言語といわれています。
なお、HTMLやXMLなどのマークアップ言語これらとは別に扱われます。
プログラム言語とは何かをテーマに、プログラミング言語の意味から、種類、特徴、体系、スタック領域やヒープ領域といった記憶域などの知識をまとめています。
マークアップ言語とは何かをテーマに、マークアップ言語の意味、HTML、XML、XHTMLなど言語の種類についてまとめています。
以下ではコンパイラ理論に関連したIPA情報処理試験の過去問とその解説をまとめています。
情報に関する理論として、形式言語と有限オートマトンの状態遷移図などの解説や演習問題をまとめています。
情報処理試験対策用のサイトオリジナル教科書をテーマにテクノロジ系の知識をまとめています。
更新履歴になります。
Copyright (C) 2010-2023 情報処理のWeb教科書. All Rights Reserved. Loarding…