Simula 是一种建模语言,通常被认为是第一个面向对象 (Object-oriented, OO) 的语言,随后出现的此类语言包括 Smalltalk、C++、Java 和 C#。那时,大多数面向对象的语言是通过类 来定义的。后来,Self 编程语言(一个类似 Smalltalk 的系统)开发人员创建了一种可替代的轻量级方法来定义这类对象,并将这种方法称为基于原型的面向对象编程或者原型对象编程。
示例代码:
**Begin** **Class** Glyph; **Virtual** : **Procedure** print **Is** **Procedure** print;; **Begin** **End** ; Glyph **Class** Char (c); **Character** c; **Begin** **Procedure** print; OutChar(c); **End** ; Glyph **Class** Line (elements); **Ref** (Glyph) **Array** elements; **Begin** **Procedure** print; **Begin** **Integer** i; **For** i:= 1 **Step** 1 **Until** UpperBound (elements, 1) **Do** elements (i).print; OutImage; **End** ; **End** ; **Ref** (Glyph) rg; **Ref** (Glyph) **Array** rgs (1 : 4); _! Main program;_ rgs (1):- **New** Char ('A'); rgs (2):- **New** Char ('b'); rgs (3):- **New** Char ('b'); rgs (4):- **New** Char ('a'); rg:- **New** Line (rgs); rg.print; **End** ;