知識點1面向對象程序設計的由來_第1頁
知識點1面向對象程序設計的由來_第2頁
知識點1面向對象程序設計的由來_第3頁
知識點1面向對象程序設計的由來_第4頁
知識點1面向對象程序設計的由來_第5頁
已閱讀5頁,還剩6頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

面向對象程序設計的由來

1.第一階段:面向機器,1940年以前最早的程序設計都是采用機器語言來編寫的,直接使用二進制碼來表示機器能夠識別和執(zhí)行的指令和數據。簡單來說,就是直接編寫0和1的序列來代表程序語言。例如:使用0000代表加載(LOAD),0001代表存儲(STORE)等。優(yōu)點:機器語言由機器直接執(zhí)行,速度快;缺點:寫比較困難,修改也麻煩,這樣直接導致程序編寫效率十分低下,編寫程序花費的時間往往是實際運行時間的幾十倍或幾百倍。由于機器語言實在是太難編寫了,于是就發(fā)展出了匯編語言。2

匯編語言亦稱符號語言,用助記符代替機器指令的操作碼,用地址符號(Symbol)或標號(Label)代替指令或操作數的地址。匯編語言由于是采用了助記符號來編寫程序,比用機器語言的二進制代碼編程要方便些,在一定程度上簡化了編程過程。例如使用LOAD來代替0000,使用STORE來代替0001。即使匯編語言相比機器語言提升了可讀性,但其本質上還是一種面向機器的語言,編寫同樣困難,也很容易出錯。342.第二階段:面向過程面向機器的語言通常情況下被認為是一種“低級語言”,為了解決面向機器的語言存在的問題,計算機科學的前輩們又創(chuàng)建了面向過程的語言。面向過程的語言被認為是一種“高級語言”,相比面向機器的語言來說,面向過程的語言已經不再關注機器本身的操作指令、存儲等方面,而是關注如何一步一步的解決具體的問題,即:解決問題的過程,這應該也是面向過程說法的來由。相比面向機器的思想來說,面向過程是一次思想上的飛躍,將程序員從復雜的機器操作和運行的細節(jié)中解放出來,轉而關注具體需要解決的問題;面向過程的語言也不再需要和具體的機器綁定,從而具備了移植性和通用性;面向過程的語言本身也更加容易編寫和維護。這些因素疊加起來,大大減輕了程序員的負擔,提升了程序員的工作效率,從而促進了軟件行業(yè)的快速發(fā)展。典型的面向過程的語言有:COBOL、FORTRAN、BASIC、C語言等。53.第三階段:結構化程序設計根本原因就是一些面向過程語言中的goto語句導致的面條式代碼,極大的限制了程序的規(guī)模。結構化程序設計(英語:Structuredprogramming),一種編程范型。它采用子程序(函數就是一種子程序)、代碼區(qū)塊、for循環(huán)以及while循環(huán)等結構,來替換傳統(tǒng)的goto。希望借此來改善計算機程序的明晰性、質量以及開發(fā)時間,并且避免寫出面條式代碼。隨著計算機硬件的飛速發(fā)展,以及應用復雜度越來越高,軟件規(guī)模越來越大,原有的程序開發(fā)方式已經越來越不能滿足需求了。1960年代中期開始爆發(fā)了第一次軟件危機,典型表現有軟件質量低下、項目無法如期完成、項目嚴重超支等,因為軟件而導致的重大事故時有發(fā)生。例如1963年美國的水手一號火箭發(fā)射失敗事故,就是因為一行FORTRAN代碼錯誤導致的。6

軟件危機最典型的例子莫過于IBM的System/360的操作系統(tǒng)開發(fā)。佛瑞德·布魯克斯(FrederickP.Brooks,Jr.)作為項目主管,率領2000多個程序員夜以繼日的工作,共計花費了5000人一年的工作量,寫出將近100萬行的源碼,總共投入5億美元,是美國的“曼哈頓”原子彈計劃投入的1/4。盡管投入如此巨大,但項目進度卻一再延遲,軟件質量也得不到保障。布魯克斯后來基于這個項目經驗而總結的《人月神話》一書,成了史上最暢銷的軟件工程書籍。為了解決問題,在1968、1969年連續(xù)召開兩次著名的NATO會議,會議正式創(chuàng)造了“軟件危機”一詞,并提出了針對性的解決方法“軟件工程”。雖然“軟件工程”提出之后也曾被視為軟件領域的銀彈,但后來事實證明,軟件工程同樣無法解決軟件危機。7

差不多同一時間,“結構化程序設計”作為另外一種解決軟件危機的方案被提出來了。EdsgerDijkstra于1968發(fā)表了著名的《GOTO有害論》的論文,引起了長達數年的論戰(zhàn),并由此產生了結構化程序設計方法。同時,第一個結構化的程序語言Pascal也在此時誕生,并迅速流行起來。結構化程序設計的主要特點是拋棄goto語句,采取“自頂向下、逐步細化、模塊化”的指導思想。結構化程序設計本質上還是一種面向過程的設計思想,但通過“自頂向下、逐步細化、模塊化”的方法,將軟件的復雜度控制在一定范圍內,從而從整體上降低了軟件開發(fā)的復雜度。結構化程序方法成為了1970年代軟件開發(fā)的潮流??茖W研究證明,人腦存在人類短期記憶一般一次只能記住5-9個事物,這就是著名的7+-2原理。結構化程序設計是面向過程設計思想的一個改進,使得軟件開發(fā)更加符合人類思維的7+-2特點。8

4.第四階段:面向對象程序設計結構化編程的風靡在一定程度上緩解了軟件危機,然而好景不長,隨著硬件的快速發(fā)展,業(yè)務需求越來越復雜,以及編程應用領域越來越廣泛,第二次軟件危機很快就到來了。第二次軟件危機的根本原因還是在于軟件生產力遠遠跟不上硬件和業(yè)務的發(fā)展,相比第一次軟件危機主要體現在“復雜性”,第二次軟件危機主要體現在“可擴展性”、“可維護性”上面。傳統(tǒng)的面向過程(包括結構化程序設計)方法已經越來越不能適應快速多變的業(yè)務需求了,軟件領域迫切希望找到新的銀彈來解決軟件危機,在這種背景下,面向對象的思想開始流行起來。9

4.第四階段:面向對象程序設計結構化編程的風靡在一定程度上緩解了軟件危機,然而好景不長,隨著硬件的快速發(fā)展,業(yè)務需求越來越復雜,以及編程應用領域越來越廣泛,第二次軟件危機很快就到來了。第二次軟件危機的根本原因還是在于軟件生產力遠遠跟不上硬件和業(yè)務的發(fā)展,相比第一次軟件危機主要體現在“復雜性”,第二次軟件危機主要體現在“可擴展性”、“可維護性”上面。傳統(tǒng)的面向過程(包括結構化程序設計)方法已經越來越不能適應快速多變的業(yè)務需求了,軟件領域迫切希望找到新的銀彈來解決軟件危機,在這種背景下,面向對象的思想開始流行起來。10

面向對象的思想并不是在第二次軟件危機后才出現的,早在1967年的Simula語言中就開始提出來了,但第二次軟件危機促進了面向對象的發(fā)展。面向對象真正開始流行是在1980s年代,主要得益于C++的功勞,后來的Java、C#把面向對象推向了新的高峰。到現在為止,面向對象已經成為了主流的開發(fā)思想。

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論