計算機世界的過程;如下圖:
現實世界問題域-----建立模型(藉助某種建模思想)------程式設計實現
(藉助某種程式語言)-------計算機世界執行求解
在談論oo之前,先讓我們回顧一下高階語言的歷史.
最早的高階語言大約誕生於1945年,是德國人楚譯為他的z-4計算機設計的p1nove.acu,比第一臺電子計算機還早幾個月;在電子計算機上實現的第一個高階語言是美國
尤尼法克公司於1952年研製成功的shortde;而真正得到推廣使用,
至今仍在流行的第一個高階語言是美國的電腦科學家巴科斯設計,並於1956年首先在
ib公司的計算機上實現的fortran語言.
早期的高階語言主要是應用於科學和工程計算,其代表作有fortran和a.計算機
進入商業和行政管理領域以後,出現了bo和rpg等便於商界使用的語言.近年來,這類語
言和資料庫技術,圖形介面技術(視覺化程式設計),物件導向的思想及rad(rapidappication
devoopent)的概念相結合,形成了一批更方便使用的所謂第四代語言(4g),如
poerbuider,dephi,vb等.
前一類應用於科學和工程計算的大型語言相對來說更為基礎,因而也更為靈活,應用範
圍更為廣泛.在fortran,101nove.(學習型)之後,自70年代以來,模組特徵更明顯,簡單易用
<101nove.a異軍突起,在世界範圍內廣泛流行.但進入80年代以後,
<101nove.語言替代.到現在,c語言的地位已相當於一種“高階彙編語
言“了.
80年代後期,物件導向的語言開始浮出水面,c++藉助使用c語言的龐大程式設計師隊伍,
一舉建立了物件導向語言的老大地位.從而oo的思想正式統治了整個軟體開發界.c++的
流行甚至使得美國軍方從80年開始大力扶植的ada語言還未及推廣便胎死腹中了.
90年代以後,計算機世界更是發生了天翻地覆的變化,原先的單機平臺讓位於eb,
“網路就是計算機“,新的語言不僅要是oo的,visua的,更要是基於eb的.java語言借
inter的東風,橫空出世,一夜紅遍天下,變化之快令人瞠目結舌.
上述這些變化,表面是不同的程式設計工具在城頭變幻大王旗,但其背後反映的卻是一種
更為深刻的認識論的改變,即你是用何種觀點來認識這個世界的?
在po中,程式設計師們分析了問題域之後,得到一個po的模型,其中常見的詞語是變數,
函式,過程等;
po:現實世界-----流程圖(變數,函式)------po語言-------執行求解
在oo中,程式設計師們先得到一個oo的模型,其中常見的詞語是類,物件,方法,訊息等;
oo:現實世界-----類圖(物件,方法)------oo語言-------執行求解
我們可以看到:
po更接近於計算機世界的物理實現;
oo則更符合於人們的認識習慣;
如果說,軟體危機的根源在於人們認識表達的過程(不斷反複,逐步深化)和馮.諾依曼