# Install icon with Homebrew, dnf, MacPorts, apt

General-purpose programming language. Version 9.5.25a via Homebrew; verified from local package data. Also installable with debian: sudo apt install icon-ipl.

## Install

```sh
sudo av install brew:icon
```

Additional install commands:

### macOS

- Homebrew (100%):

```sh
brew install icon
```

  Evidence: local Homebrew formula metadata

- MacPorts (94%):

```sh
sudo port install icon
```

  Evidence: MacPorts ports tree: lang/icon/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1

### Linux

- dnf (92%):

```sh
sudo dnf install icon
```

  Evidence: Fedora Rawhide package metadata: icon from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst

- Debian apt (92%):

```sh
sudo apt install icon-ipl
```

  Evidence: Debian stable package indexes: icon-ipl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz

## Package facts

- **Package key:** brew:icon
- **Package manager:** Homebrew
- **Version:** 9.5.25a
- **Source summary:** General-purpose programming language
- **Homepage:** <https://www2.cs.arizona.edu/icon/>
- **Repository:** <https://github.com/gtownsend/icon>
- **Generated:** 2026-08-03T19:37:03+00:00

## Executables

- icon (alias)
- icont (alias)
- iconx (alias)

## Install behavior

- Bottle: not available

## Freshness

- Page generated: 2026-08-03
- Package-manager version: 9.5.25a
## Project history and usage

Icon is a high-level general-purpose programming language from the University of Arizona tradition, known for string scanning, goal-directed evaluation, generators, backtracking, automatic storage management, and a compact command-line implementation.

### Project history

Icon was first released in 1979 as a successor to SNOBOL4. The Arizona Icon site places it in a lineage of high-level languages for strings and structures: SNOBOL at Bell Telephone Laboratories, SNOBOL4, then later University of Arizona languages supported in part by the National Science Foundation.

The Icon Project was supported by the University of Arizona Department of Computer Science. Its implementations were built by faculty, staff, students, and outside volunteers, with Gregg Townsend maintaining the Unix implementation and website after the language entered maintenance mode.

The language continued to evolve for roughly two decades after its first release. The official site says formal development has been frozen, but the Unix implementation remains in use and is maintained when necessary.

### Adoption history

Icon never became a mainstream systems language, but it earned a lasting niche among language designers, text-processing users, and people studying generators, coroutines, and goal-directed evaluation. The official FAQ describes it as useful for software tools, text processing, research, experiments, one-shot programs, and complex applications.

Its documentation culture is unusually rich for an older language package: public-domain books, implementation notes, release documentation, a program library, newsletters, and web-hosted historical material remain available through the Arizona site.

Package-manager adoption keeps Icon buildable from a shell without requiring users to fetch archived university distribution files manually. Homebrew builds the Unix implementation and installs the icon, icont, and iconx commands.

### How it is used

The Homebrew package exposes the command-line pieces of the Unix implementation: icon, icont, and iconx. Users write Icon programs with external editors and run them from a command shell rather than through an IDE.

The official FAQ frames the language around high-level string and data-structure work, programmer productivity, sets, tables, lists, records, arbitrary-precision integers, co-expressions, graphics facilities, and a program library with contributed examples.

### Why package nerds care

Icon is package-nerd catnip because it is both an installable Unix command and a preserved programming-language artifact. A tiny formula gives access to a language with a direct lineage from SNOBOL and a documented influence on later generator and coroutine thinking.

It is also a reminder that package repositories are cultural archives. Installing brew install icon is not only installing a compiler/interpreter; it is keeping an older research language executable on newer Unix-like systems.

### Timeline

- Early 1960s: SNOBOL is developed at Bell Telephone Laboratories.
- 1979: Icon is first released as a modern successor to SNOBOL4.
- 1986: The Implementation of the Icon Programming Language is published.
- 1993: Ralph and Madge Griswold publish a History of the Icon Programming Language for HOPL-II.
- 1996: The Icon Programming Language, third edition, is published.
- 1998: Graphics Programming in Icon is published.
- 2022: The official FAQ records Icon as maintained in maintenance mode.

### Related projects

- Related projects and predecessors include SNOBOL, SNOBOL4, SL5, the Icon Program Library, Jcon, the native Windows implementation, and Unicon, an object-oriented language based on Icon.

### Sources

- Homebrew formula metadata documents the packaged Unix commands and source archive used for installation.
- The Icon FAQ documents the language's features, use cases, project organization, lineage, maintenance mode, and relationship to Unicon.
- The University of Arizona Icon site provides the language origin, release year, maintenance status, documentation set, and implementation notes.


## Security Notes

generalized runtime or code generation signal.

- **Geiger risk:** yellow / medium
- generalized runtime or code generation signal

## Other Package-Manager Records

- Debian apt - icon-ipl - 9.5.24b-1: normalized package name match | Debian stable package indexes: icon-ipl from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Libraries for Icon, a high-level programming language | http://www.cs.arizona.edu/icon/
- Debian apt - icont - 9.5.24b-1: normalized package name match | Debian stable package indexes: icont from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Interpreter for Icon, a high-level programming language | http://www.cs.arizona.edu/icon/
- Debian apt - iconx - 9.5.24b-1: normalized package name match | Debian stable package indexes: iconx from https://deb.debian.org/debian/dists/stable/main/binary-amd64/Packages.xz | Executor for Icon, a high-level programming language | http://www.cs.arizona.edu/icon/
- Ubuntu apt - icon-ipl - 9.4.3-7ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: icon-ipl from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Libraries for Icon, a high-level programming language
- Ubuntu apt - icont - 9.4.3-7ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: icont from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Interpreter for Icon, a high-level programming language
- Ubuntu apt - iconx - 9.4.3-7ubuntu1: normalized package name match | Ubuntu 24.04 LTS package indexes: iconx from https://archive.ubuntu.com/ubuntu/dists/noble/universe/binary-amd64/Packages.gz | Executor for Icon, a high-level programming language
- dnf - icon - 9.5.25a-2.fc45: normalized package name match | Fedora Rawhide package metadata: icon from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Icon programming language | https://www2.cs.arizona.edu/icon/
- dnf - icon-utils - 9.5.25a-2.fc45: normalized package name match | Fedora Rawhide package metadata: icon-utils from https://dl.fedoraproject.org/pub/fedora/linux/development/rawhide/Everything/x86_64/os/repodata/07190dc5ae9f35ae73866675fed6d95fe6e8d9fe22c9d7cdf85862cb2ed24a4c-primary.xml.zst | Icon utility programs | https://www2.cs.arizona.edu/icon/
- MacPorts - icon: normalized package name match | MacPorts ports tree: lang/icon/Portfile from https://api.github.com/repos/macports/macports-ports/git/trees/master?recursive=1


## Combined YAML source

View the package source record on GitHub. [combined/icon.yml](https://github.com/mxcl/pkgdb/blob/main/combined/icon.yml)


## Sources

- pkg.so package database
- Geiger risk classifier
- curated package history
- pkgdb category and tag curation
- external package-manager database matches
- cross-ecosystem install command graph
