ITの基礎知識|ITパスポート・基本情報

【基礎理論】の記事一覧

この記事での学習内容 基本情報 応用情報

コンパイラの役割、コンパイルの過程、字句解析、構文解析、最適化の基本的な考え方、仕組みを理解する。

用語例:文脈自由文法、意味解析、コード生成、中間言語、目的プログラム、形式言語、オートマトン

言語プロセッサ

コンピュータが直接実行できるプログラムは「機械語」のプログラムです。
機械語のプログラムは、人間がみると単なる数値(2進数)の並びで、人間が作成したり呼んだりするのには不向きです。

そのため、人間がプログラムを扱いやすくするために、プログラミング言語が存在します。プログラミング言語で書かれたプログラムのことを「ソースコード」あるいは「原始プログラム」と呼びます。

「ソースコード」はそのままではコンピュータ上で実行することは出来ません。実行可能な機械語のプログラムに変換することが必要になります。この変換処理を行うのが「言語プロセッサ」と呼ばれるものです。

言語プロセッサにはいくつかの種類があります。

  • アセンブラ: 機械語と1対1に対応したアセンブラ言語を機械語に変換するプログラム
  • コンパイラ: ソースコードを一括して機械語に変換するプログラム
  • インタプリタ: ソースコードを機械語に変換しながら実行するプログラム
  • ジェネレータ: 必要な条件をパラメータで支持することで、目的に応じたプログラムを自動生成するプログラム

コンパイラ理論

コンパイラで実行可能なプログラムを生成する場合、直接実行可能なプログラムを生成するわけではありません。これは、大規模なプログラムになると、一つのプログラムのソースコードを複数に分けて扱う必要が出てくるからです。

実行可能なプログラムを生成する第一段階は、ソースコードを変換して「オブジェクトコード」または「目的プログラム」を生成することです。
この「オブジェクトコード」はソースコード単位で作られます。

第二段階として、オブジェクトコードをつなげて実行可能なプログラムを生成します。
この段階では、ライブラリと呼ばれるオブジェクトコードの集合体が使われることもあります。
ライブラリは多くのプログラムで使われるであろう、ファイル入出力などの機能をあらかじめオブジェクトコードとして用意しておいたものです。

なお、第二段階で使われるプログラムのことを「リンカ」または「リンケージエディタ」とも呼びます。

コンパイラの処理手順

コンパイラがソースコードからオブジェクトコードを生成する時、いくつかの段階を経て処理が行われます。

典型的な流れは、字句解析→構文解析→意味解析→最適化→コード生成、となっています。

  1. 字句解析: ソースコードを最小の単位の語句(トークン)に分解
  2. 構文解析: トークンの並びを、定められた文法に従って解析
  3. 意味解析: トークンの意味を考慮した解析
  4. 最適化&コード生成: プログラムの高速化、サイズの縮小

 

この記事での学習内容 基本情報 応用情報人工知能の基本的な考え方、仕組みを理解する。用語例:知識工学、学習理論、機械学習、ニューラルネットワーク、ディープラーニング(深層学習)、エキスパートシステム、解析型問題、合成型問題、知識ベース、推論エンジン人工知能人間の知的活動をコンピュータに行わせるための技術を「人工知能」と呼びます。英語表記の「Artificial Intelligen...

Read more...

計算量

2017.09.20
この記事での学習内容 基本情報 応用情報計算量の理論の考え方を理解する。用語例:時間計算量、領域計算量、オーダ記号、P(Polynomial)問題、NP(Non-deterministic Polynomial)問題、NP完全問題計算量ある問題を解く場合に、問題を解く手順(=アルゴリズム)は複数存在します。例えば、以下のような単純な掛け算を取ってみても、複数の計算方法があります。...

Read more...

オートマトン

2017.09.20
この記事での学習内容 基本情報 応用情報有限オートマトンの概念、形式言語との関係、チューリング機械との関係、状態遷移表、状態遷移図を理解する。用語例:プッシュダウンオートマトンオートマトンプログラミング言語などの形式言語で記述された分を解釈するための仮想的な機械概念をオートマトンといいます。 コンピュータそのものを数学的な観点からモデル化し、アルゴリズム(=問題解決のための処理...

Read more...

正当性理論

2017.09.19
この記事での学習内容 応用情報プログラムの正当性理論とは何か、部分正当性、全正当性の基本的な考え方、仕組みを理解する。用語例: 停止問題プログラムの正当性プログラム開発においては、不具合(=バグ)の発生はなかなか避けられないものです。このバグの除去のために作成するプログラムに対して、テストや検証を行いますが、「検証」を行うことで、プログラムの正当性を証明することができます。...

Read more...

形式言語

2017.09.19
この記事での学習内容 基本情報 応用情報形式言語とは何か、言語の定義、演算、種類、文法を理解する。また、BNF、構文図式などの表記法、正規表現、文脈自由文法を理解する。用語例: 逆ポーランド表記法自然言語と形式言語日本語や英語などの言語は人間が暮らしていく中で自然に発生したため、必ずしも厳密な文法に従っているとは限りません。こういった言語を自然言語といいます。それに対し、特定の...

Read more...

述語論理

2017.09.19
この記事での学習内容 基本情報 応用情報述語論理の考え方、演繹推論と帰納推論の違いを理解する。用語例: 関係データベース述語論理述語論理とは、命題の内部の構造を主語と述語の二つの構成要素に分解し、その中の術後部分を扱う理論です。命題文章や式で表された事象について、それが真であるか偽であるかが明確に決まるもの。命題論理審議の解っている既存の命題をつなげて新しい命題を作...

Read more...

文字の表現

2017.09.14
この記事での学習内容 ITパスポート 基本情報 応用情報代表的な文字コードを理解する。用語例: ASCIIコード、EUC(Extended UNIX Code)、JISコード、シフトJISコード、Unicode、UCS文字コードアルファベットやかな、漢字といった文字データを扱うために、コンピュータ内部ではそれぞれの文字に、0と1からなるコード番号を割り当てています。これを文字コード...

Read more...

符号理論

2017.09.14
この記事での学習内容 ITパスポート 基本情報 応用情報アナログとデジタルの特徴、量子化、標本化、A/D変換などの符号化、符号化の目的、情報伝送における信頼性、効率性、安全性の向上などの効果を理解する。用語例:通信路符号化、ハフマン符号、データ圧縮符号化理論符号化とは、データを数値に変換し、情報量として表現することで、コード化ともいいます。符号化理論とは、情報を符号化し、伝送を...

Read more...

情報理論

2017.09.14
この記事での学習内容 ITパスポート 基本情報 応用情報情報量の概念、事象の生起確率と情報量との関係を理解する。情報理論情報理論とは、ある事象における確率や統計を元に、情報の量を数学的に定義する理論です。 生起確率: ある事象 E が起こる確率。 P(E) 情報量:  事象が起こる確率を P(E) とする時、事象が起こったことを知らされた時に得られる(選択できる)情報の量。...

Read more...