Content-Type: text/html
Several different computational models were devised by these early researchers. One model, the Turing machine, stores characters on an infinitely long tape, with one square at any given time being scanned by a read/write head. Another model, [general recursive function]?s, uses functions and function composition to operate on numbers. Still others, including [Markov algorithm]?s and [Post system]?s, use grammar-like rules to operate on strings. All of these formalisms were shown to be equivalent in computational power -- that is, any computation that can be performed with one can be performed with any of the others. They are also equivalent in power to the familiar electronic computer, if one pretends that electronic computers have infinite memory.
Different models of computation have the ability to do different tasks. One representation of the power of a machine is the Chomsky hierarchy of languages. Different abstract machines in order of computational power are: finite state machines, [push down automata]?, turing machines.
The theory of computation studies these models of general computation, along with the limits of computing: Which problems are (provably) unsolvable by a computer? (See the halting problem.) Which problems are solvable by a computer, but require such an enormously long time to compute that the solution is impractical? (See Presburger arithmetic.) Can nondeterminism speed up computation significantly? (See the complexity classes P and NP and NP-complete problem.)
In addition to the general computational models, some simpler computational models are useful for special, restricted applications. Regular expressions, for example, are used to specify string patterns in UNIX and in some programming languages such as Perl. Another formalism mathematically equivalent to regular expressions, Finite automata are used in circuit design and in some kinds of problem-solving. [Context-free grammars]? are used to specify programming language syntax. [Push down automata]? are another formalism equivalent to Context-free grammars]] The theory of computation includes the study of these simpler models as well as the more general models.