Icon (编程语言)
Icon是一门非常高级编程语言,有着“终点(goal)导向执行”特征和管理字符串和文本模式的很多设施。它与SNOBOL和SL5字符串处理语言有关。Icon不是面向对象的,但在1996年开发了叫做Idol的面向对象扩展并最终变成了Unicon。
![]() | |
编程范型 | 多范型:结构化, 面向文本 |
---|---|
設計者 | Ralph Griswold |
发行时间 | 1977年 |
穩定版本 | 9.5.1
( 2018年9月27日
) |
型態系統 | 动态 |
網站 | www |
主要實作產品 | |
Icon, Jcon | |
衍生副語言 | |
Unicon | |
啟發語言 | |
SNOBOL, SL5, ALGOL | |
影響語言 | |
Unicon, Python[1], Goaldi |
基本语法编辑
Icon语言衍生自ALGOL类的结构化编程语言,因而有着类似C或Pascal的语法。Icon最类似于Pascal的是,使用了:=
语法的赋值,procedure
关键字和类似的语法。在另一方面,Icon使用C风格的花括号来结构化执行句组,并且程序开始于运行叫做main
的过程。
Icon还在很多方面分享了多数脚本语言(还有SNOBOL及SL5)的特征:变量不需要声明,类型是自动转换的,就说数字和字符串可以自动来回转换。另一个常见于很多而非全部的脚本语言的特征是,缺少行终止字符;在Icon中,行不结束于分号,而是结束于暗含的分号如果这么想有意义的话。
过程是Icon程序的基本建造块。尽管它们使用Pascal名称,但工效上更像C函数并可以返回值;在Icon中没有function
关键字。
生成器编辑
生成器是Icon中的关键概念。生成器可以定义为使用suspend
关键字的过程:
这个例子在theString
上循环,使用find
来查找pattern
。当找到一个位置并且它是奇数的时候,用suspend
从这个函数返回这个位置。不同于return
,suspend
记住这个生成器的状态,允许在下次迭代时在上次中止的地方恢复。
参见编辑
- CLU,Barbara Liskov创建的编程语言
- 协程
引用编辑
- 权威著作是《The Icon Programming Language》(第三版),Griswold和Griswold著,ISBN 1-57398-001-3。可以下载为PDF文件 页面存档备份,存于互联网档案馆。
- ^ Schemenauer, Neil; Peters, Tim; Hetland, Magnus. PEP 255 -- Simple Generators. 2001-12-21 [2008-09-05]. (原始内容存档于2020-06-05).
外部链接编辑
維基教科書中的相關電子教程:Icon Programming |