Influenced by SNOBOL, ALGOL, and SL5, Icon is a very high-level programming language designed by Ralph Griswold at the University of Arizona in 1977.
Icon is a derivative of SNOBOL, created to promote the development of string and structure intensive applications. Its name was chosen before "icon" was used to refer to GUI images, so its name has nothing to do with icons.
Icon is a high-level, imperative, procedural language that excels at processing strings and structures. The features of the language include string processing capabilities, expression-evaluation syntax, built-in data structures, strongly-typed language, transparent automatic type conversion, automatic storage allocation, and graphics facilities.
The language is used in artificial intelligence, research applications, expert systems, prototyping tools, symbolic mathematics, and in several text processing applications, such as text analysis, text editing, text generation, and document formatting.
Icon's expression-evaluation mechanism coordinates goal-directed evaluation and backtracking with conventional control structures. Its string scanning facilities for pattern matching avoids some of the complexities relating to the analysis of strings. Its built-in data structures include sets and tables with associative lookup, and lists that can be used as vectors or stacks, as well as queues and records.
Although Icon is not object-oriented, an object-oriented extension called Idol was created in 1996 and is now known as Unicon. Another, known as Objecticon, also adds object-oriented features to the Icon programming language, making it easier to write large programs and libraries.
Jcon is a Java-based implementation of the Icon language. Written in Icon, Jcon generates Java files that execute in conjunction with a runtime system written in Java.
The Icon programming language or any of its extensions or dialects are the focus of topics in this category, or its subcategories, as are any IDEs, editors, libraries, or other tools created to facilitate programming in Icon. User groups, forums, guides, and tutorials are also appropriate for this category.
Categories
Unicon |
 
 
Recommended Resources
Mitchell Software Engineering: Icon
Established in 1993, Mitchell Software Engineering is a software development consulting firm in Tucson, Arizona. The company includes a page on the Icon programming language, comparing it to Perl, Python, and Ruby. Included is a discussion of its features, and a full set of slides from a fifteen-hour course on Icon offered by the company, and which are in the public domain, and may be used for whatever purposes anyone may have. Examples of Icon coding are given.
http://www.mitchellsoftwareengineering.com/icon/
Icon is a descendant of SNOBOL4, incorporating similar string processing capabilities, built-in hash tables, success/failure based controls, dynamic storage, automatic type castings, and coercion of values, then adding more conventional procedural syntax, generator expressions, and goal-directed evaluation that automatically searches for successful results. Several extensions of Icon were incorporated in Unicon. Other variants include Jcon and Objecticon.
http://rosettacode.org/wiki/Category:Icon
Sometimes known as Objecticon, Object Icon is an object-oriented programming language that adds object-oriented features to Icon, as well as cheap co-expressions, with dynamically sized stacks, a UTF-8 based Unicode string type, and a package/namespace system. Hosted on SourceForge, it may be freely downloaded, fully or upgrades. Other resources include online API documentation, a wiki-based support page, development notes, and other information.
http://objecticon.sourceforge.net/
UA Science: The Icon Programming Language
The Icon programming language was created by Ralph Griswold at the University of Arizona. Hosted on the UA website, Icon for Unix and Icon for Windows may be downloaded. The site also includes documentation for the current release, program library indexes, language references, and answers to frequently asked questions. Links to other resources are posted to the site, along with documentation and information on older versions and other implementations of the language.
http://www2.cs.arizona.edu/icon/