Previous Table of Contents Next


6.4. Icon Resources

Many resources are available to Icon programmers. These include implementations for many platforms, a program library, source code, books, technical reports, newsletters, and a newsgroup.

Most Icon material, except for books, is available free of charge.

6.4.1. Online Access

On the World Wide Web, the Icon home page is located at

    http://www.cs.arizona.edu/icon/

From there, links to general information about Icon, reference material, the current status of Icon, implementations, the Icon program library, documentation, technical support, and so on can be found.

The address for anonymous FTP is

    ftp.cs.arizona.edu

From there, cd /icon and get README for navigational instructions.

6.4.2. Implementations

All implementations of Icon are in the public domain and available as described in the preceding section.

The current version, Version 9, presently is available for the Acorn Archimedes, the Amiga, Macintosh/MPW, Microsoft Windows, MS-DOS, many UNIX platforms, VAX/VMS, and Windows NT.

There also are earlier versions for several other platforms. Icon’s graphics facilities presently are supported for Microsoft Windows, UNIX, VAX/VMS, and Windows NT.

6.4.3. Documentation

Documentation on Icon is extensive. In addition to the material here, there are three books devoted to Icon:

The Icon Program Language (Griswold & Griswold, 1996) contains a description of Version 9.3 of Icon, including a detailed reference manual.
Graphics Programming in Icon (Griswold, Jeffery, & Townsend, 1998) describes Icon’s graphics facilities and how to build applications with visual interfaces.
The Implementation of the Icon Programming Language (Griswold & Griswold, 1986) contains a detailed description of how Icon is implemented. Although it describes an earlier version, it still is a useful reference.

There are two newsletters:

The Icon Newsletter (Griswold, Griswold, & Townsend, 1978–) is published by the Department of Computer Science at The University of Arizona and The Bright Forest Company, Tucson, AZ, three times a year and contains material of a topical nature, such as work in progress and new implementations.
The Icon Analyst (Griswold, Griswold, & Townsend, 1990–) provides in-depth coverage of technical matters related to Icon, including programming techniques and applications. It is published bimonthly by the Department of Computer Science at The University of Arizona and The Bright Forest Company, Tucson, AZ.

There also are many technical reports and user manuals for various platforms.

6.4.4. The Icon Program Library

One of the most useful resources available to Icon programmers is the Icon program library. It contains hundreds of programs, thousands of procedures that can be used in other programs, as well as documentation and useful data.

The library is divided into two parts, a basic part and a part concerned with graphics. Within these parts are directories for data, documents, include files, large programs in separate packages, procedures, and stand-alone programs.

The directory structure looks like this:

The packs and gpacks directories contain subdirectories, each devoted to a packaged program and the material it requires. For example, VIB is included in gpacks.

The directories procs and gprocs contain modules that are useful in building programs, including many extensions to Icon’s built-in computational repertoire. Modules that contain commonly used procedures are designated as core modules. The core modules are

convert Type conversion and formatting procedures
datetime Date and time procedures
factors Procedures related to factoring and prime numbers
io Procedures related to input and output
lists List manipulation procedures
math Procedures for mathematical computation
numbers Procedures for numerical computation and formatting
random Procedures related to random numbers
records Record manipulation procedures
scan Scanning procedures
sets Set manipulation procedures
sort Sorting procedures
strings String manipulation procedures
tables Table manipulation procedures


Previous Table of Contents Next