オブジェクト指向言語論2

オブジェクト指向言語論
第ニ回
知能情報学部
新田直也
プログラムの処理方式

プログラムはテキストファイルで書く(ソースコード).


ソースコードを処理する方式には以下のものがある.




テキストエディタで書いてもよいが,専用のエディタの方が便利.
コンパイラ方式:
 ソースコードを機械語に変換.(高速)
インタプリタ方式:
 ソースコードを解釈しながら実行.(低速)
中間コード方式:
 コンパイラとインタプリタの中間.Javaなどで採用.(中速)
処理方式がわからないとプログラミング言語は使えない!!
コンパイラとインタプリタ

コンパイラはソースコードから機械語への変換プログラム.
コンパイラ
& リンカ
ソースコードA
実行プログラムA
出力
入力
実行プログラムA
実行
プログラム実行
のための準備

インタプリタはソースコードの解釈と実行を同時に行うプログ
ラム.
ソースコードB
インタプリタ
解釈&実行
中間コード方式
機械語は,機種に依存する.(Windowsのプログラ
ムは,Macでは動かない)
 いっぽう,インタプリタ方式は実行速度が遅い.
 機種に依存しない部分だけを先にコンパイルする.

ソースコードA
入力
中間コードA
コンパイラ
出力
中間コードA
インタプリタ
解釈&実行
機種が違っても良い
プログラミング言語に関する
チューリング賞
1966年
1971年
1972年
1983年
1984年
1991年
2001年
A. J. Perlis
コンパイラ
John McCarthy
Lisp
Edsger W. Dijkstra
ALGOL
Dennis M. Ritchie
C
Niklaus Wirth
Pascal
Robin Milner
ML
Ole-Johan Dahl / Kristen Nygaard
Simula
2003年 Alan Kay
Smalltalk
構造化プログラミング以前

構造化していないプログラム(フロチャート)の弊害.
構造化プログラミング

構造化定理(1966年: コラド・ベーム,ジュゼッペ・
ヤコピーニ)

任意のフロチャートは,順次,反復(while文),
分岐(if文) を組み合わせて記述することができる.
int s = 0;
start:
s++;
if (s > 100)
goto fin;
goto start;
fin:;
goto文を
取ると…
int s = 0;
while (s <= 100) {
s++;
}
goto文有害論(1968年: ダイクストラ).
 一連の処理を手続きまたは関数として抽象化する.
