Icon Language

A StringOriented? programming language by RalphGriswold and Madge Griswold's folks at UniversityOfArizona? (http://www.cs.arizona.edu/icon/).

There is an ObjectOriented variant as well as a JavaLanguage based version (JCon, http://www.cs.arizona.edu/icon/jcon/)

This is a modern language with built-in strings, lists, patterns, generators, coroutines, and co-expressions. The reference interpreter is written in CeeLanguage and runs on a variety of machines.

It is the logical successor to SnobolLanguage.


See also: http://www.cs.arizona.edu/icon/


See also Unicon: http://unicon.sf.net/

Adds extensions to Icon; most importantly, OOP features.

See code example on CounterInManyProgrammingLanguages

PythonLanguage has been heavily influenced by Icon. For instance, it has directly taken generators.

I don't think that's right. (1) Generators are in fact just about the only thing in Python that in any sense comes from Icon. (2) Python's generators are quite different from Icon's; they are deliberately less powerful, and they are nowhere near as pervasive in the language as in Icon. It's absolutely true that the idea and the name come from Icon, but they surely aren't "directly taken". -- GarethMcCaughan

On the other hand, the designers of LuaLanguage have acknowledged Icon and SNOBOLs' influence on its generators and coroutines. -- ScottVokes

ICON has spawned an OO version in UNICON (used in USA by the National Institutes of Health) and now another in ObjectIcon (code.google.com/p/objecticon)

For a Java-version of UNICON, see Godiva.

For Pythonistas there is now Laurie Tratt's Converge at convergepl.org

SNOBOL make its return to Python as SnoPy? and is even coming back into UNICON as an alternative to ICON string scanning.

Something ICON-like may yet enter into the Falcon programming language.

ICON's limited logic programming finds a parallel in Erlang (if both are compared to pure LP languages)

ICON is said to have influenced some early participants in the REBOL language.


EditText of this page (last edited August 18, 2009) or FindPage with title or text search