
Icon (programming language)
Icon is a very high-level programming language based on the concept of "goal-directed execution" in which code returns a "success" along with valid values, or a "failure", indicating that there is no valid data to return. The success and failure of a given block of code is used to direct further processing, whereas conventional languages would typically use boolean logic written by the programmer to achieve the same ends. Because the logic for basic control structures is often implicit in Icon, common tasks can be completed with less explicit code.
- Comment
- enIcon is a very high-level programming language based on the concept of "goal-directed execution" in which code returns a "success" along with valid values, or a "failure", indicating that there is no valid data to return. The success and failure of a given block of code is used to direct further processing, whereas conventional languages would typically use boolean logic written by the programmer to achieve the same ends. Because the logic for basic control structures is often implicit in Icon, common tasks can be completed with less explicit code.
- Depiction
- Designer
- Ralph Griswold
- Designer
- Ralph Griswold
- Dialects
- Unicon programming language
- Has abstract
- enIcon is a very high-level programming language based on the concept of "goal-directed execution" in which code returns a "success" along with valid values, or a "failure", indicating that there is no valid data to return. The success and failure of a given block of code is used to direct further processing, whereas conventional languages would typically use boolean logic written by the programmer to achieve the same ends. Because the logic for basic control structures is often implicit in Icon, common tasks can be completed with less explicit code. Icon was designed by Ralph Griswold after leaving Bell Labs where he was a major contributor to the SNOBOL language. SNOBOL was a string-processing language with what would be considered dated syntax by the standards of the early 1970s. After moving to the University of Arizona, he further developed the underlying SNOBOL concepts in SL5, but considered the result to be a failure. This led to the significantly updated Icon, which blends the short but conceptually dense code of SNOBOL-like languages with the more familiar syntax of ALGOL-inspired languages like C or Pascal. Like the languages that inspired it, the primary area of use of Icon is managing strings and textual patterns. String operations often fail, for instance, finding "the" in "world". In most languages, this requires testing and branching to avoid using a non-valid result. In Icon most of these sorts of tests are simply not required, reducing the amount of code written by the programmer. Complex pattern handling can be accomplished in a few lines of terse code, similar to more dedicated languages like Perl but retaining a more function-oriented syntax familiar to users of other ALGOL-like languages. Icon is not object-oriented, but an object-oriented extension called Idol was developed in 1996 which eventually became Unicon. It also inspired other languages, with its simple generators being especially influential; Icon's generators were a major inspiration for the Python programming language.
- Implementations
- enIcon, Jcon
- Influenced
- enUnicon, Python, Goaldi
- Influenced
- goaldi
- Python (programming language)
- Unicon programming language
- InfluencedBy
- enSNOBOL, SL5, ALGOL
- Influenced by
- ALGOL
- SNOBOL
- Is primary topic of
- Icon (programming language)
- Label
- enIcon (programming language)
- LatestReleaseDate
- 13 August 2020
- Latest release date
- 13 August 2020
- LatestReleaseVersion
- 9.50
- Latest release version
- 9.5.20
- Link from a Wikipage to an external page
- purl.umn.edu/107329
- purl.umn.edu/107697
- purl.umn.edu/107698
- www2.cs.arizona.edu/icon/books.htm
- rosettacode.org/wiki/Category:Icon
- github.com/proebsting/goaldi
- www.cs.arizona.edu/icon
- www2.cs.arizona.edu/icon/docs/ipd266.htm
- tratt.net/laurie/research/pubs/papers/tratt__experiences_with_an_icon_like_expression_evaluation_system.pdf
- Link from a Wikipage to another Wikipage
- ALGOL
- ALGOL 60
- Array slicing
- Assembly language
- Associative array
- Atomic commit
- Bell Labs
- Block (programming)
- Boolean logic
- C (programming language)
- Category:Dynamically typed programming languages
- Category:Icon programming language family
- Category:Pattern matching programming languages
- Category:Programming languages created in 1977
- Category:Public-domain software
- Category:SNOBOL programming language family
- Category:Text-oriented programming languages
- Charles Babbage Institute
- COBOL
- Collection (abstract data type)
- Coroutine
- Distributed cost
- Dynamic typing
- Exception handling
- FORTRAN
- GE 645
- Generator (computer programming)
- Graphical user interface
- IBM 7090
- Illinois Institute of Technology
- Iterator
- Java programming language
- JavaScript
- List (abstract data type)
- Loop-invariant code motion
- Magic number (programming)
- Markov chain
- Multi-paradigm programming language
- Nested function
- Null pointer exception
- Object-oriented
- Pascal (programming language)
- Perl (programming language)
- Project MAC
- Punch card
- Python (programming language)
- Python programming language
- Queue (abstract data type)
- Ralph Griswold
- Rosetta Code
- Runtime system
- Scripting language
- Set (abstract data type)
- Side effect (computer science)
- Smalltalk
- SNOBOL
- Stack (abstract data type)
- Standard input
- String (computer science)
- Structured programming
- Unicon (programming language)
- Unicon programming language
- University of Arizona
- Value (computer science)
- Very high-level programming language
- Virtual machine
- Xerox PARC
- Logo
- enIcon logo.png
- Name
- enIcon
- Name
- enIcon
- Paradigm
- enmulti-paradigm: structured, text-oriented
- SameAs
- DS1x
- Icon
- Icon
- Icon
- Icon
- ICON
- ICON
- Icon (linguagem de programação)
- Icon (linguaggio di programmazione)
- Icon (programmeertaal)
- Icon (programming language)
- Icon (programspråk)
- Icon (язык программирования)
- Icon (编程语言)
- m.03tr0
- Q1156474
- آيكون (لغة برمجة)
- آیکون (زبان برنامهنویسی)
- ഐക്കൺ (പ്രോഗ്രാമിങ് ഭാഷ)
- 아이콘 (프로그래밍 언어)
- Subject
- Category:Dynamically typed programming languages
- Category:Icon programming language family
- Category:Pattern matching programming languages
- Category:Programming languages created in 1977
- Category:Public-domain software
- Category:SNOBOL programming language family
- Category:Text-oriented programming languages
- Thumbnail
- Typing
- Dynamic typing
- WasDerivedFrom
- Icon (programming language)?oldid=1116371999&ns=0
- WikiPageLength
- 42746
- Wikipage page ID
- 14801
- Wikipage revision ID
- 1116371999
- WikiPageUsesTemplate
- Template:=
- Template:About
- Template:Authority control
- Template:Cite book
- Template:Cite encyclopedia
- Template:Cite journal
- Template:Cite web
- Template:Code
- Template:Efn
- Template:Infobox programming language
- Template:Notelist
- Template:Reflist
- Template:Sfn
- Template:Start date and age
- Template:URL
- Template:Wikibooks
- Wordnet_type
- synset-programming language-noun-1