Transcript 10月1日分
オブジェクト指向言語論
第ニ回
知能情報学部
新田直也
プログラムの処理方式
プログラムはテキストファイルで書く(ソースコード).
ソースコードを処理する方式には以下のものがある.
テキストエディタで書いてもよいが,専用のエディタの方が便利.
コンパイラ方式:
ソースコードを機械語に変換.(高速)
インタプリタ方式:
ソースコードを解釈しながら実行.(低速)
中間コード方式:
コンパイラとインタプリタの中間.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年: ダイクストラ).
一連の処理を手続きまたは関数として抽象化する.