必威电竞|足球世界杯竞猜平台

simula
來源:互聯網

Simula是一種面向對象的編程語言,由挪威科學家Ole-Johan Dahl和Kristen Nygaard在1960年代在奧斯陸的挪威計算中心開發。Simula包括兩種編程語言:Simula I和Simula 67。Simula 67在1967年5月20日在挪威奧斯陸郊外的小鎮莉沙布舉行的IFIP TC-2工作會議上正式發布。Simula被認為是最早的面向對象編程語言,引入了所有后來面向對象編程語言所遵循的基礎概念:對象、類、繼承。

Simula的句法基于ALGOL 60,是ALGOL 60的一個相當忠實的超集。Simula 67引入了對象、類、子類(后來稱為子類繼承超類)、虛過程、協程、離散事件模擬和特征性的垃圾收集。Simula的影響常常被低估,但Simula類型的對象在C++、Object Pascal、Java、C#和其他幾種語言中被重新實現。計算機科學家如C++的創造者Bjarne Stroustrup和Java的創造者James Gosling已經承認Simula是一種主要影響。

Simula已被廣泛用于模擬VLSI設計、過程建模、協議、算法以及排版、計算機圖形和教育等其他應用。

程序語言

1967年5月20日,在挪威奧斯陸郊外的小鎮莉沙布舉行的IFIP TC-2 工作會議上,挪威科學家Ole-Johan Dahl和Kristen Nygaard正式發布了Simula 67語言。之后,在1968年2月形成了Simula 67的正式文本。

挪威科學家Ole-Johan Dahl,Kristen Nygaard

也是在1968年,荷蘭教授E.W.Dijkstra提出了“GOTO語句是有害的”觀點,指出程序的質量與程序中所包含的GOTO語句的數量成反比,認為應該在一切高級語言中取消GOTO語句。這一觀點在計算機學術界激起了強烈的反響,引發了一場長達數年的廣泛的論戰,其直接結果是結構化程序設計方法的產生。

相信當時沒有任何人預見到當年發生的這兩件事對后來計算機技術,特別是軟件技術所產生的深遠影響。盡管這兩種方法的思想差異巨大,但是多年以后,無論是Ole-Johan Dahl和Kristen Nygaard,還是E.W.Dijkstra,都因其在這一年所取得的成就,獲得了計算機界的諾貝爾獎——圖靈獎

隨著計算機技術的迅猛發展,硬件成本不斷降低,而軟件成本卻不斷增加,因此,如何縮短軟件生產周期和提高維護效率,研制出高質量的軟件產品成為一個重要課題。

思想進步

程序設計思想的進步

在20世紀60年代,軟件曾出現過嚴重危機,由軟件錯誤而引起的信息丟失、系統報廢事件屢有發生。為此,1968年,荷蘭學者E.W.Dijkstra提出了程序設計中常用的GOTO語句的三大危害:破壞了程序的靜動一致性;程序不易測試;限制了代碼優化。此舉引起了軟件界長達數年的論戰,并由此產生了結構化程序設計方法,同時誕生了基于這一設計方法的程序設計語言Pascal。

瑞士計算機科學家Niklaus Wirth開發的Pascal,一經推出,它的簡潔明了以及豐富的數據結構和控制結構,為程序員提供了極大的方便性與靈活性,同時它特別適合微計算機系統,因此大受歡迎。結構化程序設計思想采用了模塊分解與功能抽象和自頂向下、分而治之的方法,從而有效地將一個較復雜的程序系統設計任務分解成許多易于控制和處理的子程序,便于開發和維護。因此,結構化方法迅速走紅,并在整個20世紀70年代的軟件開發中占絕對統治地位。

但是,到了70年代末期,隨著計算機科學的發展和應用領域的不斷擴大,對計算機技術的要求越來越高。結構化程序設計語言和結構化分析與設計已無法滿足用戶需求的變化,于是面向對象技術開始浮出水面。

面向對象程序設計方法起源于Simula 67語言。在程序設計語言的發展史上,20世紀60年代后期是承上啟下的重要時期。這一時期有三種重要的語言問世,即Simula 67、由一批頂尖計算機科學家共同設計的Algol 68、以及為IBM 360系列機配套開發的PL/I。這三種語言雖均有所創新,但Simula 67的面向對象概念的影響是最巨大而深遠的。它本身雖因為比較難學、難用而未能廣泛流行,但在它的影響下所產生的面向對象技術卻迅速傳播開來,并在全世界掀起了一股OO熱潮,至今盛行不衰。面向對象程序設計在軟件開發領域引起了大的變革,極大地提高了軟件開發的效率,為解決軟件危機帶來了一線光明。

但是,事實表明,面向對象程序設計方法雖然比結構化方法能更自然地表現現實世界,但它不是靈丹妙藥,并不能解決所有問題,它本身存在固有的內在的局限性。最近興起的面向方面編程(AOP)正是為了改進上述程序設計方法學的不足。AOP被視為是“后”面向對象時代的一種新的重要的程序設計技術。而從更廣義的范疇看,在過去的40年里,軟件體系結構試圖處理日益增長的軟件復雜性,但復雜性卻仍繼續增加,傳統的體系結構好像已經達到了其處理此類問題的極限。新興的Web 服務通過允許應用程序以對象模型中立的方式實現互連,從而提供了一個更強大、更靈活的編程模型,并將對軟件開發方法產生巨大的影響。

參考資料 >

生活家百科家居網