Simula

维基百科,自由的百科全书
跳转至: 导航搜索
Simula
编程范型 物件導向
发行时间 1967年
設計者 奧利-約翰·達爾克利斯登·奈加特
啟發語言 ALGOL 60
影響語言 物件導向程式設計

Simula,一種編譯式程式語言,在1960年代在奧斯陸挪威電子計算中心(Norwegian Computing Center)開始被發展出來,主要的設計者是奧利-約翰·達爾(Ole-Johan Dahl)與克利斯登·奈加特。它可以被分成Simula I與Simula 67兩種。它承繼了ALGOL 60的基礎,被認為是第一個物件導向程式設計的程式語言。

Simula影響了Smalltalk以及接下來所有的物件導向程式設計程式語言,如比雅尼·斯特劳斯特鲁普在設計C++語言時,將許多Simula 67的特性引入C++之中。

歷史[编辑]

克利斯登·奈加特在1957年開始在自己的電腦上寫模擬器。為了發展他的模擬器,他需要更強大的程式語言。1962年1月,奧利-約翰·達爾開始跟他合作。他們受到ALGOL 60的啟發,在同年5月,發展出第一個模擬器程式語言,取名為Simula I。此時,克利斯登·奈加特受到UNIVAC邀請,去協助他們開發UNIVAC 1107電腦。他向UNIVAC軟體部門的主管,鮑伯·貝莫(Bob Bemer),展示了Simula的想法。鮑伯·貝莫是ALGOL忠實的支持者,他看出Simula計劃的潛力。鮑伯·貝莫同時負責主辦國際資訊處理協會(IFIP)所舉行的第二次國際會議,他力邀克利斯登·奈加特前往發表論文,論文主題是「SIMULA-擴展ALGOL到離散事件網路的描述」(SIMULA—An Extension of ALGOL to the Description of Discrete-Event Networks)。

1963年8月,挪威電子計算中心以優惠價格購買到UNIVAC 1107,在UNIVAC的合約同意下,奧利-約翰·達爾在這台電腦上安裝了Simula I。它是以ALGOL 60的編譯器來實作的。1965年1月,Simula I終於可以在UNIVAC 1107上完全的運作。接下來幾年,克利斯登·奈加特奧利-約翰·達爾致力於教授Simula I。Simula I也被移植到Burroughs B5500電腦,以及蘇俄的URAL-16電腦上。

1966年,東尼·霍爾首次提出類別的概念,克利斯登·奈加特奧利-約翰·達爾將他的概念,擴展為類別繼承。1967年5月,他們在奧斯陸舉辦的IFIP工作小組論壇中,發表了論文,形成Simula 67的第一份定義文件。

1968年召開的會議,則組成了SIMULA標準小組(SIMULA Standards Group, SSG),發表了第一份官方Simula標準文件。

程式範例[编辑]

Simula的Hello World範例:

Begin
   OutText ("Hello World!");
   Outimage;
End;