pafuイーランスクール 学んでできる

メニューへ戻る

ソフトウェア開発言語(コンピュータシステム)

学習のポイント

言語プロセッサの種類、特に、コンパイルの仕組み、プログラム言語の種類と特徴、Javaの実行方法、マークアップ言語の種類について理解しましょう。

1. 言語プロセッサ
言語プロセッサとは、原始プログラム(ソースコード)を機械語に翻訳するプログラムのことを言います。翻訳されたものを「目的プログラム」と言います。以下の種類があります。

アセンブラ
アセンブラ言語で記述されたプログラムを翻訳します。アセンブラ言語の命令語は機械語と1対1で対応します。また、「マクロ命令(定期的に使用する命令を1つに定義したもの)」が使用できます。

コンパイラ
高水準言語で記述されたプログラムを一括して目的プログラムに翻訳します。(COBOL FORTRAN C等)以下の過程となります。
1. 原始プログラムの作成
2. コンバイル(未解決アドレスをリストアップ)
翻訳は、「字句解析」「構文解析」「意味解析」「最適化」「コード生成」の順です。

原始プログラム(ソースコード)
  ↓
■字句解析
原始プログラムの文字列から字句「変数名・演算子・予約語・定数など」を取り出す。取り出したものをトークン(意味の持つ最小単位)といいます。
  ↓
■構文解析
切り出した字句の構成が、構文規則に従っているかを検査します。構文上の誤りを見つけるとコンパイルエラーとして報告します。
  ↓
■意味解析
意味上の誤りがないか検査します。例えば、文字列型の変数が算術式の中に現れればエラーとして報告します。
  ↓
■最適化
目的プログラムの実行時間やサイズが小さくなるように、プログラムの冗長性を排除します。
  ↓
■コード生成
目的プログラムを出力するコードを生成します。
  ↓
目的プログラム

3. ロードモジュール(実行可能プログラム)の作成(未解決アドレスの解決)
複数の目的プログラムをリンカ(連携編集プログラム)によって連結してロードモジュールを作成する。
※プログラムの実行中にリンクすることを動的リンク(ダイナミックリンク)と言います。動的リンクを行うライブラリーを動的リンクライブラリー(DLL)と言います。これにより実行時のメモリを節約出来ます。
4.実行(実アドレスへの変換)
ローダを使用してロードモジュールを主記憶装置にロードする。ロータとは、プログラムを主記憶にロードすることです。(つまり、実アドレスへの変換)

インタプリタ
原始プログラムの命令を1個ずつ翻訳しては実行する言語処理プログラムです。(BASIC APL Perl PHP)

ジェネレータ
あらかじめ用意されたパラメータを与えることで目的プログラムを生成します。「生成プログラム」とも言います。(RPG)

プリコンパイラ
主処理プログラムをコンパイルする前のデータ変換や整列などの前処理的な編集を行う言語処理プログラム。

クロスコンパイラ
異機種のコンピュータの目的プログラムを生成する言語処理プログラム。 
2. プログラム言語
プログラム言語の種類
汎用プログラム言語 低水準言語 機械語 ※第1世代
アセンブラ言語 ※第2世代
高水準言語
※第3世代
手続き型言語(COBOL・FORTRAN・BASIC・C等)
非手続き型言語(Java・Smalltalk・RPG・LISP・PROLOG等)
第4世代言語(4GL)
スクリプト言語 Perl PHP JavaScript
特殊問題向き言語
非手続き型言語は以下のように分類出来ます。
オブジェクト指向型 Java・Smalltalk
関数型 LISP
論理型 Prolog
表形式型 RPG

各言語の特徴
Fortran
古い歴史を持つ科学技術計算用の言語。
COBOL
英文に似た記述で事務処理用の言語。
C
UNIXを開発した言語。
PL/1
FortranとCOBOLを統合した言語。
ALGOL
ヨーロッパの学術機関が中心となって開発した科学技術計算分野に適した言語。
BASIC
初心者用に開発されたインタプリタの言語。
Pascal
ALGOLをもとに開発された教育目的の言語。
Ada
Fortran COBOLの後継言語として開発され文法は、Pascalの流れをくむ言語。
Smalltalk
オブジェクト指向の先駆。Xerox社のパロアルト研究所が開発した言語。
C++
C言語にオブジェクト指向の機能を追加した言語。
Java
サン・マイクロシステムズ社が開発したオブジェクト指向言語で文法はCに近い。現在では汎用的な言語として注目度が高い。Javaはコンバイルすると「バイトコード」となり、「Java仮想マシン」上で実行可能プログラムとなります。従って、OSに依存することなく動作が可能です。Javaで開発したプログラムには以下の形態があります。
1. ブラウザ上で実行するものを「アプレット」と言います。
2. Webサーバ上で実行する「Webアプリケーション」を「サーブレッド」や「JSP」といいます。
3. 通常の「アプリケーション」として、「デスクップアプリケーション」や最近、普及している「Androidアプリ」があります。
4. デジタル家電などに組み込まれる「エンべデットシステム」にも利用されます。
Java Script
主にWebページに組み込まれたプログラムを「Webブラウザ上で実行する」ために用いられるスクリプト言語の一種で、実行環境をWebブラウザに組み込んで利用されることが多い。
LISP
記号処理を中心として、文字列やリスト構造を取り扱うことができる関数型言語。人工知能の分野で使用。
Plolog
論理学を基本として設計された論理型の言語。LISPと同様に人工知能の分野で使用されています。
RPG
報告書の作成を目的とした表形式型の言語。条件をパラメータとして与えると機械語プログラムを生成する。
2. マークアップ言語
マークアップ言語とは、文書の一部を「タグ」と呼ばれる特別な文字列で囲うことにより、文章の構造(見出しやハイパーリンクなど)や、修飾情報(文字の大きさや組版の状態など)を、文章中に記述していく記述言語で以下の3種類があります。
SGML 1980年代後半からアメリカ国防総省などの公文書規格として採用されているマークアップ言語
HTML Webページを記述するマークアップ言語
XML XMLはユーザが独自のタグを指定できることから、マークアップ言語を作成するためのメタ言語とも言われる
3. プログラムの性質
プログラムの性質には、以下の種類があります。

再使用不可能プログラム
実行中にプログラムの値が変更されるため、再度実行する場合はロードする必要がある。

再使用可能プログラム(リユーザブル)
実行中に変更した値が初期状態に戻るため再ロードする必要がない。
再使用可能プログラムには以下の2種類があります。
1. 逐次再使用可能プログラム
1つのタスクの終了後、再ロードすることなく繰り返し使用することのできるプログラム。
2. 再入可能プログラム(リエントラント)
タスクごとにデータ領域を持つことによって複数のタスクを並行して実行できるプログラム。

再配置可能プログラム(リロケータブル)
主記憶上のどの位置に読み込まれても実行できるもの。「ペースアドレス指定方式」であることが必要です。

再帰プログラム(リカーシブ)
自分自身を呼び出して使うことのできるプログラム。

メニューへ戻る

pafuイーランスクール

pafuイーランスクール 学んでできる