Spell (Unix)
Encyclopedia
Spell is the standard English language
spell checker
for Unix
.
Spell was originally written by Stephen C. Johnson
of Bell Labs
in 1975. Douglas McIlroy
later improved its accuracy, performance, and memory use, and described his work and spell in general in his 1982 paper Development of a Spelling list.
Spell has a simple command-line interface
: It goes over all the words in a given text file, and prints a sorted list of unique misspelled words in that file. It does not provide any interface for looking for those words in the file, or helping to correct the mistakes. In 1983, a different spell-checker, ispell
(the interactive spell-checker) was ported to Unix. ispell had a user interface for showing the spelling mistakes in context, and suggest how to correct them. Since then, the original Spell tool has been mostly considered obsolete.
Another reason why Spell is considered obsolete is that it only supports the English language. Modern spell-checkers for Unix and Linux
systems, such as aspell, MySpell
and hunspell
all support a multitude of different languages and character sets.
The Single Unix Specification
has officially declared Spell a "legacy application", stating that this was done "because there is no known technology that can be used to make it recognise general language for user-specified input without providing a complete dictionary along with the input file." Nevertheless, the Single Unix Specification does not standardize any other spell-checking utility to take Spell's place.
Because of Spell's problems and the superiority of its alternatives, a free software
version of McIlroy's spell has never been written. Instead, in 1996 Thomas Morgan of GNU
wrote
a simple wrapper to ispell (which was already popular at the time) to replicate spell's original behaviour. Many Linux distributions include this GNU spell, or an even simpler shell script
; For example, the "spell" command in Fedora Linux simply runs aspell, as:
cat "$@" | aspell list --mode=none | sort -u
English language
English is a West Germanic language that arose in the Anglo-Saxon kingdoms of England and spread into what was to become south-east Scotland under the influence of the Anglian medieval kingdom of Northumbria...
spell checker
Spell checker
In computing, a spell checker is an application program that flags words in a document that may not be spelled correctly. Spell checkers may be stand-alone capable of operating on a block of text, or as part of a larger application, such as a word processor, email client, electronic dictionary,...
for Unix
Unix
Unix is a multitasking, multi-user computer operating system originally developed in 1969 by a group of AT&T employees at Bell Labs, including Ken Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, and Joe Ossanna...
.
Spell was originally written by Stephen C. Johnson
Stephen C. Johnson
Stephen Curtis Johnson spent nearly 20 years at Bell Labs and AT&T where he wrote yacc, lint, spell and the Portable C Compiler machine .Johnson earned his PhD in mathematics but has spent his entire career in computer science...
of Bell Labs
Bell Labs
Bell Laboratories is the research and development subsidiary of the French-owned Alcatel-Lucent and previously of the American Telephone & Telegraph Company , half-owned through its Western Electric manufacturing subsidiary.Bell Laboratories operates its...
in 1975. Douglas McIlroy
Douglas McIlroy
Malcolm Douglas McIlroy is a mathematician, engineer, and programmer. As of 2007 he is an Adjunct Professor of Computer Science at Dartmouth College. Dr...
later improved its accuracy, performance, and memory use, and described his work and spell in general in his 1982 paper Development of a Spelling list.
Spell has a simple command-line interface
Command-line interface
A command-line interface is a mechanism for interacting with a computer operating system or software by typing commands to perform specific tasks...
: It goes over all the words in a given text file, and prints a sorted list of unique misspelled words in that file. It does not provide any interface for looking for those words in the file, or helping to correct the mistakes. In 1983, a different spell-checker, ispell
Ispell
Ispell is a spelling checker for Unix that supports most Western languages. It offers several interfaces, including a programmatic interface for use by editors such as emacs...
(the interactive spell-checker) was ported to Unix. ispell had a user interface for showing the spelling mistakes in context, and suggest how to correct them. Since then, the original Spell tool has been mostly considered obsolete.
Another reason why Spell is considered obsolete is that it only supports the English language. Modern spell-checkers for Unix and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...
systems, such as aspell, MySpell
MySpell
MySpell was the former spell checker included with OOo Writer of the free OpenOffice.org office suite.Since version 2.0.2 OpenOffice.org has replaced MySpell with Hunspell.-Background:...
and hunspell
Hunspell
Hunspell is a spell checker and morphological analyzer designed for languages with rich morphology and complex word compounding and character encoding, originally designed for the Hungarian language....
all support a multitude of different languages and character sets.
The Single Unix Specification
Single UNIX Specification
The Single UNIX Specification is the collective name of a family of standards for computer operating systems to qualify for the name "Unix"...
has officially declared Spell a "legacy application", stating that this was done "because there is no known technology that can be used to make it recognise general language for user-specified input without providing a complete dictionary along with the input file." Nevertheless, the Single Unix Specification does not standardize any other spell-checking utility to take Spell's place.
Because of Spell's problems and the superiority of its alternatives, a free software
Free software
Free software, software libre or libre software is software that can be used, studied, and modified without restriction, and which can be copied and redistributed in modified or unmodified form either without restriction, or with restrictions that only ensure that further recipients can also do...
version of McIlroy's spell has never been written. Instead, in 1996 Thomas Morgan of GNU
GNU
GNU is a Unix-like computer operating system developed by the GNU project, ultimately aiming to be a "complete Unix-compatible software system"...
wrote
a simple wrapper to ispell (which was already popular at the time) to replicate spell's original behaviour. Many Linux distributions include this GNU spell, or an even simpler shell script
Shell script
A shell script is a script written for the shell, or command line interpreter, of an operating system. It is often considered a simple domain-specific programming language...
; For example, the "spell" command in Fedora Linux simply runs aspell, as:
cat "$@" | aspell list --mode=none | sort -u