Aviva Directory » Computers & Internet » Programming » Icon

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.





Recommended Resources

Search for Icon on Google or Bing