Unicon (programming language)
{{short description|Programming language descended from Icon}}
{{primary sources|date=June 2018}}
{{Infobox programming language
| name = Unicon
| logo =
| file ext =
| paradigm = object-oriented, procedural
| released =
| designer = Clint Jeffery
| developer =
| latest release version =
| latest release date =
| latest preview version =
| latest preview date =
| typing =
| implementations =
| dialects =
| influenced by = Icon
| influenced =
| operating system = Cross-platform: Windows, Unix
| license = GNU General Public License
| website = {{url|http://unicon.sourceforge.net/}}
| wikibooks =
}}
Unicon is a programming language designed by American computer scientist Clint Jeffery with collaborators including Shamim Mohamed, Jafar Al Gharaibeh, Robert Parlett and others. Unicon descended from Icon and a preprocessor for Icon called IDOL. Compared with Icon, Unicon offers better access to the operating system as well as support for object-oriented programming. Unicon began life as a merger of three popular Icon extensions: an OO preprocessor named Idol, a POSIX filesystem and networking interface, and an ODBC facility. The name is shorthand for "Unified Extended Dialect of Icon."
Features
Compared with Icon, many of the new features of Unicon are extensions to the I/O and system interface, to complement Icon's core control and data structures. Rather than providing lower-level APIs as-is from C, Unicon implements higher level and easier to use facilities, enabling rapid development of graphic- and network-intensive applications in addition to Icon's core strengths in text and file processing.
Feature list
- Classes and packages
- Exceptions as a contributed class library - see mailing list
- Loadable child programs
- Monitoring of child programs
- Dynamic loading of C modules (some platforms)
- Multiple inheritance, with novel{{cite web |url=https://www.researchgate.net/publication/2420091 |title=Closure-Based Inheritance and Inheritance Cycles in Idol |date=August 1998 |author=Clinton Jeffery |via=ResearchGate}} semantics
- ODBC database access{{Cite web|url=http://unicon.org/utr/utr1/utr1.htm|title = Unicon ODBC Interface}}
- dbm files can be used as associative arrays
- Posix system interface
- 3D graphics{{cite web| url=http://unicon.org/utr/utr9c.pdf | title=Unicon 3D Graphics - User's Guide and Reference Manual | access-date=2024-01-27}}
- True concurrency (on platforms supporting Posix threads){{cite web| url=http://unicon.org/utr/utr14.pdf | title=Unicon Threads - User's Guide and Reference Manual | access-date=2024-01-27}}
When run as a graphical IDE, the Unicon program ui.exe continues to offer links to Icon help.
The official Unicon programming book in PDF format{{cite web| url=http://unicon.org/book/ub.pdf | title=Programming with Unicon | access-date=2024-01-27}} is a popular way to learn Unicon. The book includes an introduction to object-oriented development as well as UML. It includes useful chapters on topics such as the use of Unicon for CGI. Recent additions to Unicon include true concurrency.
Unicode
Unicon is not yet Unicode-compliant. There are opportunities posted at a help-wanted page.{{Cite web|url=http://unicon.org/helpwanted.html|title=Help Wanted!}}
Example code
procedure main()
w := open("test UNICON window", "g")
write(w, "Hello, World!")
read(w)
close(w)
end
See also
- Rebol, a similar web-oriented expression-based language without the use of keywords
- Curl, multi-paradigm web content functional language which is also expression-based but only for client-side
- Coroutine
- Generators
- Continuation
References
{{Reflist|1}}
External links
- [http://www.unicon.org/ Unicon]
- {{SourceForge|unicon}}
- [http://unicon.org/book/ Unicon Programming book]
- [http://www.drones.com/unicon/ Posix Interface for Unicon ]
- [http://www.cs.nmsu.edu/~sgaikaiw/Thesis.pdf ADAPTING SNOBOL-STYLE PATTERNS TO UNICON]
- [http://www2.cs.arizona.edu/icon/jcon/ Java version of Icon]
- [http://99-bottles-of-beer.net/language-unicon-1129.html Unicon at 99-bottles]
- [https://literateprograms.org Literate programs]
Category:Icon programming language family
Category:Pattern matching programming languages