Many contemporary linguists describe their data in terms of a system of rules which state that one string of symbols is to be rewritten as another string of symbols, perhaps with the condition that this only occur when the symbols occur in a particular context. When the linguist wants to use the grammar to produce a particular utterance, he starts with an initial symbol and, one at a time in linear sequence, applies or attempts to apply the rules to the string of symbols he is building up. After applying all of the rules, or perhaps a subset of them, he may have to reapply the rules of a subset of them again and again until no further changes can be made to the string. If at the end of this process the string consists solely of terminal symbols, he has produced a grammatical utterance. Basically such systems consist of symbols and a few operations on these symbols, including match, copy, concatenate, and replace. This system grew out of a union of the item-and-process approach to linguistics with automata theory, an area of mathematics related to the understanding of computers.