(印刷用 PS 版は /home/hattori/visual-prog/latex2e/main.ps
です)
計算モデルと抽象化
高級言語は、ハードウェアの計算の仕組みとは違った発想のプログラミング方法を提供できる。(e.g.関数型言語、論理型言語) ---パラダイム
- 高級言語の処理系は仮想機械と考えることができる。
- ライブラリなどの形で、新しい機能を仮想機械に加えることができる。
命令型パラダイム
プログラムとは、命令を順に実行していくものである。
- フォン・ノイマン型のハードウェアを直接かつ効率的に扱えるようにしたい。
- (機械語に比べて)プログラム・テキストの構造は、そのプログラムが何をするかの理解を助けるものにしたい。---構造化プログラミング
関数型パラダイム
プログラムとは、関数の組み合わせである。
- 関数は入力と出力の組で決まるので、時間的に変化したりしない。---参照透過性(式の値は、その部分式にだけ依存する)
- 多くの関数型言語は次の特徴を持つが、必ずしも関数型言語特有の機能とは限らない。
- First class objectとしての関数
- ごみ集め
論理型パラダイム
プログラムとは、定理の証明である。
- 導出原理による機械的証明の過程がプログラムの実行である。
- 宣言的プログラミングが可能。プログラムは動作の手順ではなく、データ間の関係を記述する。
オブジェクト指向
これも一種のパラダイムだが、上の三つとはレベルが違う。Programming in large におけるパラダイム。
- データと操作のカプセル化
- 情報隠蔽
- 継承による再利用