9780321322210

Languages and Machines An Introduction to the Theory of Computer Science

by
  • ISBN13:

    9780321322210

  • ISBN10:

    0321322215

  • Edition: 3rd
  • Format: Paperback
  • Copyright: 2/14/2005
  • Publisher: Pearson
  • Purchase Benefits
  • Free Shipping On Orders Over $59!
    Your order must be $59 or more to qualify for free economy shipping. Bulk sales, PO's, Marketplace items, eBooks and apparel do not qualify for this offer.
  • Get Rewarded for Ordering Your Textbooks! Enroll Now
  • We Buy This Book Back!
    In-Store Credit: $27.30
    Check/Direct Deposit: $26.00
List Price: $169.60 Save up to $4.09
  • Buy New
    $165.51
    Add to Cart Free Shipping

    PRINT ON DEMAND: 2-4 WEEKS. THIS ITEM CANNOT BE CANCELLED OR RETURNED.

Supplemental Materials

What is included with this book?

  • The New copy of this book will include any supplemental materials advertised. Please check the title of the book to determine if it should include any access cards, study guides, lab manuals, CDs, etc.

Summary

The third edition ofLanguages and Machines: An Introduction to the Theory of Computer Scienceprovides readers with a mathematically sound presentation of the theory of computer science. The theoretical concepts and associated mathematics are made accessible by a "learn as you go" approach that develops an intuitive understanding of the concepts through numerous examples and illustrations.

Table of Contents

Preface xiii
Introduction 1(6)
PART I Foundations
Chapter 1 Mathematical Preliminaries
7(34)
1.1 Set Theory
8(3)
1.2 Cartesian Product, Relations, and Functions
11(3)
1.3 Equivalence Relations
14(2)
1.4 Countable and Uncountable Sets
16(5)
1.5 Diagonalization and Self-Reference
21(2)
1.6 Recursive Definitions
23(4)
1.7 Mathematical Induction
27(5)
1.8 Directed Graphs
32(4)
Exercises
36(4)
Bibliographic Notes
40(1)
Chapter 2 Languages
41(24)
2.1 Strings and Languages
42(3)
2.2 Finite Specification of Languages
45(4)
2.3 Regular Sets and Expressions
49(5)
2.4 Regular Expressions and Text Searching
54(4)
Exercises
58(3)
Bibliographic Notes
61(4)
PART II Grammars, Automata, and Languages
Chapter 3 Context-Free Grammars
65(38)
3.1 Context-Free Grammars and Languages
68(8)
3.2 Examples of Grammars and Languages
76(5)
3.3 Regular Grammars
81(2)
3.4 Verifying Grammars
83(6)
3.5 Leftmost Derivations and Ambiguity
89(4)
3.6 Context-Free Grammars and Programming Language Definition
93(4)
Exercises
97(5)
Bibliographic Notes
102(1)
Chapter 4 Normal Forms for Context-Free Grammars
103(42)
4.1 Grammar Transformations
104(2)
4.2 Elimination of A-Rules
106(7)
4.3 Elimination of Chain Rules
113(3)
4.4 Useless Symbols
116(5)
4.5 Chomsky Normal Form
121(3)
4.6 The CYK Algorithm
124(5)
4.7 Removal of Direct Left Recursion
129(2)
4.8 Greibach Normal Form
131(7)
Exercises
138(5)
Bibliographic Notes
143(2)
Chapter 5 Finite Automata
145(46)
5.1 A Finite-State Machine
145(2)
5.2 Deterministic Finite Automata
147(4)
5.3 State Diagrams and Examples
151(8)
5.4 Nondeterministic Finite Automata
159(6)
5.5 λ-Transitions
165(5)
5.6 Removing Nondeterminism
170(8)
5.7 DFA Minimization
178(6)
Exercises
184(6)
Bibliographic Notes
190(1)
Chapter 6 Properties of Regular Languages
191(30)
6.1 Finite-State Acceptance of Regular Languages
191(2)
6.2 Expression Graphs
193(3)
6.3 Regular Grammars and Finite Automata
196(4)
6.4 Closure Properties of Regular Languages
200(3)
6.5 A Nonregular Language
203(2)
6.6 The Pumping Lemma for Regular Languages
205(6)
6.7 The Myhill-Nerode Theorem
211(6)
Exercises
217(3)
Bibliographic Notes
220(1)
Chapter 7 Pushdown Automata and Context-Free Languages
221(34)
7.1 Pushdown Automata
221(6)
7.2 Variations on the PDA Theme
227(5)
7.3 Acceptance of Context-Free Languages
232(7)
7.4 The Pumping Lemma for Context-Free Languages
239(4)
7.5 Closure Properties of Context-Free Languages
243(4)
Exercises
247(4)
Bibliographic Notes
251(4)
PART III Computability
Chapter 8 Turing Machines
255(40)
8.1 The Standard Turing Machine
255(4)
8.2 Turing Machines as Language Acceptors
259(3)
8.3 Alternative Acceptance Criteria
262(1)
8.4 Multitrack Machines
263(2)
8.5 Two-Way Tape Machines
265(3)
8.6 Multitape Machines
268(6)
8.7 Nondeterministic Turing Machines
274(8)
8.8 Turing Machines as Language Enumerators
282(6)
Exercises
288(5)
Bibliographic Notes
293(2)
Chapter 9 Turing Computable Functions
295(30)
9.1 Computation of Functions
295(4)
9.2 Numeric Computation
299(2)
9.3 Sequential Operation of Turing Machines
301(7)
9.4 Composition of Functions
308(4)
9.5 Uncomputable Functions
312(1)
9.6 Toward a Programming Language
313(7)
Exercises
320(3)
Bibliographic Notes
323(2)
Chapter 10 The Chomsky Hierarchy
325(18)
10.1 Unrestricted Grammars
325(7)
10.2 Context-Sensitive Grammars
332(2)
10.3 Linear-Bounded Automata
334(4)
10.4 The Chomsky Hierarchy
338(1)
Exercises
339(2)
Bibliographic Notes
341(2)
Chapter 11 Decision Problems and the Church-Turing Thesis
343(18)
11.1 Representation of Decision Problems
344(2)
11.2 Decision Problems and Recursive Languages
346(2)
11.3 Problem Reduction
348(4)
11.4 The Church-Turing Thesis
352(2)
11.5 A Universal Machine
354(4)
Exercises
358(2)
Bibliographic Notes
360(1)
Chapter 12 Undecidability
361(28)
12.1 The Halting Problem for Turing Machines
362(3)
12.2 Problem Reduction and Undecidability
365(3)
12.3 Additional Halting Problem Reductions
368(3)
12.4 Rice's Theorem
371(2)
12.5 An Unsolvable Word Problem
373(4)
12.6 The Post Correspondence Problem
377(5)
12.7 Undecidable Problems in Context-Free Grammars
382(4)
Exercises
386(2)
Bibliographic Notes
388(1)
Chapter 13 Mu-Recursive Functions
389(44)
13.1 Primitive Recursive Functions
389(5)
13.2 Some Primitive Recursive Functions
394(4)
13.3 Bounded Operators
398(6)
13.4 Division Functions
404(2)
13.5 Gödel Numbering and Course-of-Values Recursion
406(4)
13.6 Computable Partial Functions
410(5)
13.7 Turing Computability and Mu-Recursive Functions
415(6)
13.8 The Church-Turing Thesis Revisited
421(3)
Exercises
424(6)
Bibliographic Notes
430(3)
PART IV Computational Complexity
Chapter 14 Time Complexity
433(32)
14.1 Measurement of Complexity
434(2)
14.2 Rates of Growth
436(6)
14.3 Time Complexity of a Turing Machine
442(4)
14.4 Complexity and Turing Machine Variations
446(2)
14.5 Linear Speedup
448(3)
14.6 Properties of Time Complexity of Languages
451(7)
14.7 Simulation of Computer Computations
458(4)
Exercises
462(2)
Bibliographic Notes
464(1)
Chapter 15 P, NP, and Cook's Theorem
465(32)
15.1 Time Complexity of Nondeterministic Turing Machines
466(2)
15.2 The Classes P and NP
468(1)
15.3 Problem Representation and Complexity
469(3)
15.4 Decision Problems and Complexity Classes
472(2)
15.5 The Hamiltonian Circuit Problem
474(3)
15.6 Polynomial-Time Reduction
477(2)
15.7 P=NP?
479(2)
15.8 The Satisfiability Problem
481(11)
15.9 Complexity Class Relations
492(1)
Exercises
493(3)
Bibliographic Notes
496(1)
Chapter 16 NP-Complete Problems
497(32)
16.1 Reduction and NP-Complete Problems
497(1)
16.2 The 3-Satisfiability Problem
498(2)
16.3 Reductions from 3-Satisfiability
500(13)
16.4 Reduction and Subproblems
513(4)
16.5 Optimization Problems
517(2)
16.6 Approximation Algorithms
519(4)
16.7 Approximation Schemes
523(3)
Exercises
526(2)
Bibliographic Notes
528(1)
Chapter 17 Additional Complexity Classes
529(26)
17.1 Derivative Complexity Classes
529(3)
17.2 Space Complexity
532(3)
17.3 Relations between Space and Time Complexity
535(5)
17.4 P-Space, NP-Space, and Savitch's Theorem
540(4)
17.5 P-Space Completeness
544(4)
17.6 An Intractable Problem
548(2)
Exercises
550(1)
Bibliographic Notes
551(4)
PART V Deterministic Parsing
Chapter 18 Parsing: An Introduction
555(16)
18.1 The Graph of a Grammar
555(2)
18.2 A Top-Down Parser
557(4)
18.3 Reductions and Bottom-Up Parsing
561(2)
18.4 A Bottom-Up Parser
563(4)
18.5 Parsing and Compiling
567(1)
Exercises
568(1)
Bibliographic Notes
569(2)
Chapter 19 LL(k) Grammars
571(24)
19.1 Lookahead in Context-Free Grammars
571(5)
19.2 FIRST, FOLLOW, and Lookahead Sets
576(3)
19.3 Strong LL(k) Grammars
579(1)
19.4 Construction of FIRSTk Sets
580(3)
19.5 Construction of FOLLOWk Sets
583(2)
19.6 A Strong LL(1) Grammar
585(2)
19.7 A Strong LL(k) Parser
587(2)
19.8 LL(k) Grammars
589(2)
Exercises
591(2)
Bibliographic Notes
593(2)
Chapter 20 LR(k) Grammars
595(28)
20.1 LR(0) Contexts
595(4)
20.2 An LR(O) Parser
599(2)
20.3 The LR(0) Machine
601(5)
20.4 Acceptance by the LR(0) Machine
606(6)
20.5 LR(1) Grammars
612(8)
Exercises
620(1)
Bibliographic Notes
621(2)
Appendix I Index of Notation 623(4)
Appendix II The Greek Alphabet 627(2)
Appendix III The ASCII Character Set 629(2)
Appendix IV Backus-Naur Form Definition of Java 631(10)
Bibliography 641(8)
Subject Index 649

Rewards Program

Write a Review