Simula 是20世纪60年代由挪威学者达尔与尼加德设计的语言,其1967年版本 Simula 67 首次引入类、对象、继承与虚方法,被公认为第一门面向对象编程语言,直接启发了 Smalltalk、C++ 与 Java。两位设计者因此获得2001年图灵奖。

| 设计者 | 奥利-约翰·达尔、克里斯滕·尼加德 |
| 开发机构 | 挪威计算中心 |
| 关键版本 | Simula 67(1967年) |
| 历史地位 | 第一门面向对象语言 |
| 基础语言 | ALGOL 60 |
| 相关荣誉 | 2001年图灵奖 |
Simula是由挪威计算中心的奥利-约翰·达尔(Ole-Johan Dahl)与克里斯滕·尼加德(Kristen Nygaard)设计的编程语言,包括 Simula I(1964年前后)与 Simula 67(1967年)两个主要版本。Simula 67 首次完整引入类与对象的概念,被公认为世界上第一门面向对象编程语言。
Simula 的名字来自 Simulation(模拟)。尼加德长期从事运筹学与系统模拟研究,他发现用当时的语言描述码头装卸、交通流等离散事件系统非常笨拙,于是与达尔合作,在 ALGOL 60 的基础上扩展出专门的模拟语言。为了让程序结构与被模拟的现实系统一一对应,他们发明了类(class)来描述一类实体的共同结构与行为,用对象(object)表示具体实例,并引入继承与虚方法支持层次化建模——这些概念构成了此后所有面向对象语言的基石。两位设计者因此共同获得2001年图灵奖,遗憾的是二人均于2002年去世。
Simula 本身主要用于学术界与北欧的模拟计算,商业上并不算成功,但其思想的传播改变了整个行业:艾伦·凯(Alan Kay)受其启发在施乐帕克研究中心创造了 Smalltalk;比雅尼·斯特劳斯特鲁普(Bjarne Stroustrup)在博士期间使用 Simula 后深感其类机制之美,遂在 C 语言中重现之,这就是 C++ 的起源;Java、C#、Python 等语言的对象模型同样是这条脉络的延续。
问:为什么说 Simula 而不是 Smalltalk 是第一门面向对象语言?答:类、对象、继承、虚方法这些核心机制在1967年的 Simula 67 中均已具备,早于1972年起步的 Smalltalk;不过面向对象这一术语确实由 Smalltalk 阵营的艾伦·凯提出并推广。
问:Simula 现在还能运行吗?答:可以。GNU Cim 等编译器仍可把 Simula 编译为 C 运行,但仅用于教学与历史研究,已无生产价值。

| 设计者 | 奥利-约翰·达尔、克里斯滕·尼加德 |
| 开发机构 | 挪威计算中心 |
| 关键版本 | Simula 67(1967年) |
| 历史地位 | 第一门面向对象语言 |
| 基础语言 | ALGOL 60 |
| 相关荣誉 | 2001年图灵奖 |
登录 后参与讨论
暂无讨论,来发表第一条评论吧