Unicon (programming language)

From Wikipedia, the free encyclopedia
Jump to navigation Jump to search
Unicon
Paradigmobject-oriented, procedural
Designed byClint Jeffery
OSCross-platform: Windows, Unix
LicenseGNU General Public License
Websiteunicon.sourceforge.net
Influenced by
Icon

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[edit]

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[edit]

  • 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[1] semantics
  • ODBC database access[2]
  • dbm files can be used as associative arrays
  • Posix system interface
  • 3D graphics[3]
  • True concurrency (on platforms supporting Posix threads)[4]

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[5] 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[edit]

Unicon is not yet Unicode-compliant. There are opportunities posted at a help-wanted page.[6]

Example code[edit]

procedure main()
	w := open("test UNICON window", "g")
	write(w, "Hello, World!")
	read(w)
	close(w)
end

See also[edit]

  • Icon - from which Unicon evolved
  • Converge - a language with similar objectives
  • Rebol - a similar web-oriented expression-based language without the use of keywords
  • Curl - another multi-paradigm web content functional language which is also expression-based but only for client-side (There is no server-side module as of March, 2008)
  • co-routines
  • generators
  • continuations

References[edit]

External links[edit]