International Journal for Research in Applied Science and Engineering Technology
In recent years, there has been an increasing number of broader devices connected to networks, in... more In recent years, there has been an increasing number of broader devices connected to networks, including vehicles, smartphones, medical units, household devices, smart televisions, etc.
Computers & Mathematics with Applications, 1982
Theory of Computation is a valuable textbook, which has been much needed in most computer science... more Theory of Computation is a valuable textbook, which has been much needed in most computer science curricula. Despite the existence of good advanced texts on computability, logic, analysis of algorithms, and formal languages and the recent advent of introductory discrete mathematics texts for computer science students, there has not been a comprehensive intermediate text in theoretical computer science. Lewis and Papadimitriou have provided such a text. The background required is a semester of discrete mathematics, and some mathematical maturity; thus the material would be suitable for a two semester course for thud year computer science or mathematics students. Judicious selection of topics would enable the presentation of a one semester course using this text, with the emphasis reflecting the preferences of the instructor. Chapter 1, "Sets, Relations, and Languages", provides a brief but remarkably thorough overview of the basic required concepts of discrete mathematics: an introduction to logic and set theory, relations and functions, and formal languages. Chapter 2 introduces finite automata as abstractions of real computing devices. Deterministic and nondeterministic finite automata are described: it is shown that they accept the same set of languages, the "regular" languages. The chapter concludes by showing that non-regular languages exist. Chapter 3 starts with the notion of a grammar and develops the natural correspondence between context-free languages, context-free grammars, and pushdown automata. Important properties of the context-free languages are derived; this leads into an excellent discussion of parsing techniques. Moving down the Chomsky hierarchy, Chapter 4 concerns Turing machines. The correspondence between accepting languages and computing functions is developed; then, from modest initial Turing machine computations, progressively more sophisticated ones are built. This culminates in the statement that all computable functions are computable by a Turing machine. Nondeterminism in Turing machines is introduced, and shown to leave unchanged the set of functions computed. Starting with Church's thesis, Chapter 5 discusses the equivalence of Turing machines, unrestricted grammars, and partial recursive functions. In the process, the primitive recursive functions are defined, and shown not to include all computable functions. The chapter concludes with universal Turing machines. Chapter 6 shows that some propositions are undecidable and some functions are uncomputable. The halting problem and Post's correspondence problem, among others, are considered. The chapter does not attempt detailed coverage of this area, but rather is an intelligent selection of topics. Chapter 7 proceeds to computational complexity, by introducing resource bounds on Turing machine computations. The complexity classes P and NP are defined, and their importance to everyday computation is emphasized. The NP-completeness of various combinatorial problems is proved. Chapters 8 and 9 change focus somewhat, to logicspecifically, the propositional calculus and the predicate calculus. Presentation of this material is fairly consistent from one text to another; notable in this presentation are the discussions of compactness and resolution theorem proving. In addition, parallels between unsolvability and NP-completeness are drawn. The choice of topics appears well considered, and the logical progression from topic to topic is very good. One topic which is omitted is the design and analysis of algorithms; however, the existence of good introductory and advanced texts in this area compensates for this. The book is well written and precise. Numerous exercises serve to illustrate and expand on the material covered in the body of the text. Worked examples are not provided, however, and would have to be provided in accompanying lectures. I see no serious drawbacks in this text, and as outlined here I see many strong points. In conclusion, I feel that the book is a valuable contribution to any computer science education.
Uploads
Papers by adarsh salukhe