Io (编程语言)
Io语言是一门计算机高级编程语言,其发展历史并不长,2002年3月7日由Steve Dekorte研发出来。 Io语言因为没有关键字,因而很容易进行扩展,并很灵活。
面向对象 基于原型 | |
設計者 | Steve Dekorte |
實作者 | Steve Dekorte, Jonathan Wright, Jeremy Tregunna |
2002年 | |
穩定版本 | 20170906
(2017年8月11日[1]
) |
型態系統 | 动态, 强类型 |
網站 | |
主要實作產品 | |
Io Io.NET | |
啟發語言 | |
Smalltalk, NewtonScript, Self, Lua, LISP, Act1 | |
影響語言 | |
Ioke, Potion |
特点
Io语言并非主流编程语言,但其学习价值和启发价值都很高。这门语言吸收了LISP、Lua、Smalltalk等语言的特点。
Io语言是纯面向对象的原型继承语言,它的创造过程是综合了Smalltalk、Self、NewtonScript、Act1、LISP和Lua等语言的特点[2];
Io语言主要吸取了这些语言的如下特点:
- Smalltalk——所有的变量均为对象、所有的消息都是动态的。
- Self——基于原型的面向对象设计。
- NewtonScript——差异化继承。
- Act1——并发行为和特征。
- LISP——代码是运行时间可内省/可修改的树。
- Lua——小巧且具有可嵌入能力。
历史
Io语言大约是2002年3月7日由Steve Dekorte创造的,创造初衷则是Steve Dekorte为了帮助他的朋友Dru Nelson改造另一门称作“Cel”的语言,Steve Dekorte发现自己对编程语言的原理并不是很了解,于是决定写一个简单的语言来帮助自己理解相关的问题。
示例
经典的Hello World程序:
"Hello, world!" println
新对象是通过克隆其他对象来创建的。特别是在Io中,一个新的空对象在创建后,其中只保存了与其父对象的不同之处,这种行为被称为差别继承。下面是一个例子:
A := Object clone // 创建一个新的空对象,命名为"A"
Io语言中一个简单的非递归的阶乘方法:
factorial := method(n,
if(n == 0, return 1)
res := 1
Range 1 to(n) foreach(i, res = res * i)
)
由于将res * i
赋值给res
是方法的最后一个操作,这个函数会隐式地返回这个结果,因此不需要显式地加上一个返回语句。上面这段代码展示了ranges
的用法而没有用for()
,后者会更快一些。
This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.