Lists with This Book. Books by Eitan Gurari. Separate different tags with a comma. This single location in Australian Capital Territory: None of your libraries hold this item.
|Published (Last):||20 March 2013|
|PDF File Size:||20.24 Mb|
|ePub File Size:||3.28 Mb|
|Price:||Free* [*Free Regsitration Required]|
These abstract machines are called automata. Automata theory is also closely related to formal language theory,  as the automata are often classified by the class of formal languages they are able to recognize. An automaton can be a finite representation of a formal language that may be an infinite set. Automata are used as theoretical models for computing machines, and are used for proofs about computability. Formal Language theory[ edit ] Main article: Formal language Set inclusions described by the Chomsky hierarchy Language theory is a branch of mathematics concerned with describing languages as a set of operations over an alphabet.
It is closely linked with automata theory, as automata are used to generate and recognize formal languages. There are several classes of formal languages, each allowing more complex language specification than the one before it, i. Chomsky hierarchy ,  and each corresponding to a class of automata which recognizes it.
Because automata are used as models for computation, formal languages are the preferred mode of specification for any problem that must be computed. Main article: Computability theory Computability theory deals primarily with the question of the extent to which a problem is solvable on a computer. The statement that the halting problem cannot be solved by a Turing machine  is one of the most important results in computability theory, as it is an example of a concrete problem that is both easy to formulate and impossible to solve using a Turing machine.
Much of computability theory builds on the halting problem result. Computational complexity theory[ edit ] Main article: Computational complexity theory A representation of the relation among complexity classes Complexity theory considers not only whether a problem can be solved at all on a computer, but also how efficiently the problem can be solved.
Two major aspects are considered: time complexity and space complexity, which are respectively how many steps does it take to perform a computation, and how much memory is required to perform that computation.
In order to analyze how much time and space a given algorithm requires, computer scientists express the time or space required to solve the problem as a function of the size of the input problem. For example, finding a particular number in a long list of numbers becomes harder as the list of numbers grows larger.
We thus say that in order to solve this problem, the computer needs to perform a number of steps that grows linearly in the size of the problem. So in our previous example we might say that the problem requires O.
An Introduction to the Theory of Computation
Computations are designed to solve problems. Programs are descriptions of computations written for execution on computers. The field of computer science is concerned with the development of methodologies for designing programs, and with the development of computers for executing programs. It is therefore of central importance for those involved in the field that the characteristics of programs, computers, problems, and computation be fully understood. Moreover, to clearly and accurately communicate intuitive thoughts about these subjects, a precise and well-defined terminology is required. This book explores some of the more important terminologies and questions concerning programs, computers, problems, and computation. The exploration reduces in many cases to a study of mathematical theories, such as those of automata and formal languages; theories that are interesting also in their own right.
AN INTRODUCTION TO THE THEORY OF COMPUTATION EITAN GURARI PDF
Theory of computation
An Introduction to the Theory of Computation (Principles of Computer Science Series)