Icon is a very high-level programming language featuring goal-directed execution and many facilities for managing strings and textual patterns. It is related to SNOBOL and SL5, string processing languages. Icon is not object-oriented, but an object-oriented extension called Idol was developed in 1996 which eventually became Unicon.
Icon's most important capabilities are:
support for strings of characters of arbitrary length
high-level facilities for analyzing strings
a powerful expression-evaluation mechanism
sophisticated data structures for managing complex relationships among data
high-level graphics facilities
automatic storage management
procedure doSomething(aString) write(aString) end
procedure main () write ( "Hello world!" ); end
Icon is a high-level, imperative, procedural language especially useful for processing strings and structures.
String processing capabilities - allow a multitude of operations on strings, including convenient analysis of strings using pattern matching functions.
Expression-evaluation syntax - uses control structures to combine evaluations with backtracking.
Built-in data structures - data types can be numerical values, strings, lists, characters, records, procedure, or tables with associative lookup. Lists can be used as stacks and queues, records, or vectors.
Strongly typed language - values are typed, as opposed to variables. Values are not statically typed.
Transparent automatic type conversion - values are converted to expected types without casting.
Storage allocation automatic - Objects are created during execution and deallocated as space is needed. String sizes do not need to be defined when program is coded and are dependent only on available memory.
1. Text Analysis
2. Text Editing
3. Text Generation
4. Document Formatting
The Tech Platform