Version 19 of Icon

Updated 2003-09-21 21:47:34

The word icon can have several meanings within the computing community.

For instance, an icon can be a graphical image used within a GUI application to represent some action to take. [add in wiki references to dealing with icons here...]

The BWidget toolkit supports toolbars with icons very nicely.

You can get an excellent collection of beautiful icons, complete with the supporting software to integrate them into your Tk application, from Adrian Davis' Tk ICONS project.


Icon [L1 ] is a programming language with a long and rich history, although it is even more obscure than tcl.

Also, see About Tcl and popularity

There are several points of similarity between the two languages, along with many more differences.

  • Interpreted with a byte-code compiler
  • Portable across a range of different systems
  • Built-in memory allocation and garbage collection
  • Portable graphical tool kit
  • High degree of introspection
  • Rich built-in data structures (character sets, lists, records, sets, strings, tables)
  • Invocation of procedures based on a dynamic string value
  • Two memory scopes, global and local
  • Strongly typed values, but untyped variables
  • Primitives for determining if a variable has a value
  • No "go to" statement

The data structures are implemented in a way that allows a substantial amount of polymophism. The syntax for interating through all the values in a set, or all the elements in a list, or even all the characters in a string is pretty much the same.

Some of the differences are equally significant.

  • The syntax looks more like C than tcl
  • Many, many operators
  • Procedures can have local variables that are declared static instead of local so that they retain their values between invocations (for Tcl, see Static variables and variables in namespaces)
  • Parameters are passed by value (for primitive types) or reference (for structures)
  • No dynamic creation of procedures
  • No namespaces
  • Pattern matching is a normal extension of expression evaluation
  • Backtracking built into the language
  • Expressions can yield 0 or more values (not necessarily all at once)
  • Generators and co-expressions
  • Character set limited to 8-bit characters
  • Separate compilation of procedures (not a just-in-time compiler)

escargo 10/28-30/2002


[ Category GUI | Category Language ]