Unicon (programming language)

From Wikipedia, the free encyclopedia

Unicon is a programming language descended from Icon and its preprocessor, IDOL, that 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."

Compared with Icon, many of the new features of Unicon are extensions to the I/O and system interface, to complement Icon's outstanding core control and data structures. Rather than providing lower-level API's 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.

  • 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 semantics
  • ODBC database access
  • dbm files can be used as associative arrays
  • posix system interface
  • 3D graphics

When run as a graphical IDE, the Unicon program ui.exe continues to offer links to Icon help.

To learn Unicon, the Unicon programming book in PDF format[1] may be the best first choice. 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 XmlHttpRequest and SNOBOL-style pattern matching.

OpenSubscriber.com [2] has a mailing list for Unicon.

Unicon is not yet UNICODE-compliant and there are opportunities posted at a help-wanted page[3]

[edit] Example

procedure main()
        w := open("test UNICON window", "g")
        write( w, "testing")
        write( w, "Any key will close this window")
        read(w)
        close(w)
end

[edit] See also

  • Converge - a language with similar objectives
  • Godiva - goal-directed Java with succeed | fail
  • 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 ( no server-side module as of March, 2008)
  • co-routines
  • Generators
  • Continuations

[edit] External links

Languages