プログラミング
プログラミングの標準化
プログラムの処理内容を理解しやすくすることを目的に、変数名やコメントの付け方などに一定の規則を決めること
<プログラム言語>
●低水準言語
コンピューターが理解しやすいプログラム言語
・機械語
●高水準言語
人間が理解しやすいプログラム言語
・C
・BASIC
・C++
<言語プロセッサ>
コンピュータは機械語で書かれたプログラムしか理解できないため、人間が書いたプログラムである原始プログラム(ソースプログラム)は、そのままではコンピュータ上で実行できない。
そこで、言語プロセッサという翻訳プログラムを使って、機械語のプログラムである目的プログラムに変換する必要がある。
アセンブラ言語で書かれた原始プログラムを目的プログラムに翻訳する言語プロセッサ。アセンブラで翻訳することをアセンブルという。
高水準言語で書かれた原始プログラムを一括して目的プログラムに翻訳する言語プロセッサ。コンパイラで翻訳することをコンパイルという。
●ジェネレータ
入力・処理・出力などの必要な条件を設定値であるパラメタで指示することで、処理の目的に応じたプログラムを自動的に生成する言語プロセッサ。
高水準言語で書かれた原始プログラムを1行ずつ解釈し、実行する言語プロセッサ。機械語の目的プログラムは作成されないため、実行するたびに解釈が必要でプログラムの実行速度は遅くなる。インタプリタは、プログラムの途中で文法ミスがあってもその直前まで実行できる。
ある処理系用に書かれた原始プログラムを、他の処理系用の原始プログラムに変換するプログラムのこと
他のコンピュータ用のプログラムを解読し、実行するマイクロプログラム
<ソフトウェア実行までの手順>
高水準言語で書かれた原始プログラムを、コンパイラによって機械語の目的プログラムに翻訳する。
この時、原始プログラムを解析し、実行時の処理効率を高めるために最適化が行われる。
②リンク
ライブラリモジュール
ある特定の機能を持ったプログラムを他のプログラムから利用できるように部品化したプログラムの集まり
コンパイラによって翻訳された目的プログラムに必要なライブラリモジュールなどを付け加えて、実行可能なプログラムであるロードモジュールを生成する。この作業をリンクといい、リンクを行うプログラムをリンカという。
●静的リンク
プログラムを実行する前に、リンカによってあらかじめ必要な目的プログラムやライブラリモジュールをリンクする方法。
●動的リンク
プログラム実行中に別のプログラムモジュールの機能が必要になった時、そのプログラムを随時リンクする方法
DLL(動的リンクライブラリ)
動的リンクを前提としたソフトウェアモジュール群をまとめたライブラリファイル
③ロード
ロードモジュールを実行するために主記憶上に持ってくる作業。
ローダと呼ばれるプログラムが担当する。
ソフトウェアの保守性を高めるために、外部仕様を変更することなく、プログラムの内部構造を変更すること。
<プログラムの性質>
●逐次再利用可能(リユーザブル)
一旦実行が終わった後も、再度主記憶にロードし直さなくても実行できるプログラムを再使用可能なプログラムという。
そのうち、同時には1つのタスクだけしか使用できないプログラムを、逐次際使用可能プログラムと言う。
●再入可能(リエントラント)
際使用可能なプログラムのうち、2つ以上のタスクから同時に呼び出しても正しく動作するプログラムを再入可能なプログラムと言う。
再入可能なプログラムは、コード(手続き)部分とデータ部分が別の記憶領域に分かれているため、データ部分をタスクごとに用意することで並列して実行できる。
●再配置可能(リロケータブル)
主記憶上のどこの位置にロードしても実行できるプログラムを、再配置可能なプログラムと言う。
●再帰的(リカーシブ)
実行中に自分自身を呼び出せるプログラムを再帰的なプログラムという。
プログラムのソースコードを解析して、プログラムの仕様や設計情報を復元すること。
例えば、プログラムからUMLのクラス図を生成すること