Alphabet (computer science)

From Wikipedia, the free encyclopedia
Jump to: navigation, search

In computer science and mathematical logic, an alphabet is a non-empty set of symbols or letters, e.g. characters or digits.[1] For example a common alphabet is {0,1}, the binary alphabet. A finite string is a finite sequence of letters from an alphabet; for instance a binary string is a string drawn from the alphabet {0,1}. An infinite sequence of letters may be constructed from elements of an alphabet as well.

Given an alphabet \Sigma, we write \Sigma^* to denote the set of all finite strings over the alphabet \Sigma. Here, the {}^* denotes the Kleene star operator, so \Sigma^* is also called the Kleene closure of \Sigma. We write \Sigma^\infty (or occasionally, \Sigma^\N or \Sigma^\omega) to denote the set of all infinite sequences over the alphabet \Sigma.

For example, if we use the binary alphabet {0,1}, the strings (ε, 0, 1, 00, 01, 10, 11, 000, etc.) would all be in the Kleene closure of the alphabet (where ε represents the empty string).

Alphabets are important in the use of formal languages, automata and semiautomata. In most cases, for defining instances of automata, such as deterministic finite automata (DFAs), it is required to specify an alphabet from which the input strings for the automaton are built.

See also[edit]


  1. ^ Ebbinghaus, H.-D.; Flum, J.; Thomas, W. (1994), Mathematical Logic (2nd ed.), New York: Springer, p. 11, ISBN 0-387-94258-0, "By an alphabet \mathcal{A} we mean a nonempty set of symbols."