基礎理論 - 1.基礎理論 - 3.情報に関する理論 - 10.プログラミング言語論・意味論

Last Update : January 02 2021 16:00:16

     

a. 手続型言語

記述された命令を逐次的に実行し、処理の結果に応じて変数の内容を変化させていくプログラミング言語のこと。
C言語やBASIC、Pascalなど、ほとんどのプログラミング言語は手続き型言語に属する。
処理速度が速い反面、動作を検証するには処理の流れを追う必要があり、開発効率は関数型言語に劣るといわれる。


b. 関数型言語

数学的な言語仕様をもつプログラミング言語のこと。一度値を与えられた変数は常にその値を維持し、計算は計算結果を引数とした関数呼び出しの繰り返しとして行われる。
動作速度は手続き型言語に劣るが、変数の値が変化することがなく、構造が把握しやすいため、開発効率は高いといわれる。利用者が多い言語の中では、LispとSchemeが比較的関数型言語に近い特徴をもつ。


c. 論理型言語

論理型言語は、形式論理、数理論理に基づいたプログラム言語で、事実を定義することである問題を解決することができます。代表的なものとして、Prologがある。


d. オブジェクト指向言語

「プロセス」と「データ」を一体化した「オブジェクト」を対象として分析・設計を行う方法論です。
相互にメッセージ (message) を送りあうオブジェクト (object) の集まりとしてプログラムを構成する技法である。

オブジェクト
 データ(属性)と手続き(機能)をひとまとめにした概念。

メソッド
 オブジェクトが持つ手続きや機能のこと。データを操作する手続きのこと。

カプセル化(情報隠蔽)
 データとメソッドを一体化すること。これによりデータは隠蔽されデータを取り扱うインターフェイスのみが公開されます。
一体化することで、データを保護し、モジュールの独立性を高めることができる。

クラス
 クラスは、オブジェクトがもつデータやメソッドを記述したもの(抽象化)でオブジェクトの雛形です。

インスタンス
 クラスから生成されたオブジェクトの実体で、コンピュータで実行する対象です。

汎化
 あるクラスに共通する抽象的な概念を別のクラスとすること
上位となる抽象的なクラスのことをスーパークラスという。

特化
 抽象的なクラスから具体的なクラスにすること
下位の具体的なクラスのことをサブクラスという。
サブクラスは、スーパークラスの機能を原則として受け継いで持つ。このことをインヘリタンス(継承)という。

メッセージとポリモーフィズム
 オブジェクトは他のオブジェクトにメッセージを送ることでそのオブジェクトを動かす。
オブジェクトから1つのメッセージを送ることで、受け取ったオブジェクトは自分独自の処理を行う。そのことで相手オブジェクトに応じた処理が行われる。この仕組みを多態性(ポリモーフィズム)という。



     

www.it-shikaku.jp