|

Addison-Wesley / Prentice Hall

Computer Science

My Instructor Resource Center :  Log in or request access

Languages and Machines: An Introduction to the Theory of Computer Science, 3/E
Thomas A. SudkampWright State University

ISBN-10: 0321322215
ISBN-13:  9780321322210

Publisher:  Addison-Wesley
Copyright:  2006
Format:  Paper; 672 pp
Published:  02/14/2005
Status: Available on Demand   What's this?



 

The third edition of Languages and Machines: An Introduction to the Theory of Computer Science provides readers with a mathematically sound presentation of the theory of computer science at a level suitable for junior and senior level computer science majors.  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.  In this edition the presentation has been enhanced by increasing the number of examples, expanding the selection of topics particularly in the area of computational complexity, and providing a flexible format giving instructors the ability to design their courses that concentrate on specific areas such as automata theory, computability theory, or computational complexity.

  • Expansion coverage of computational complexity.
  • Over 100 new examples and exercises.  Examples of programming syntax are given using the BNF description of the programming language Java.
  • A new chapter following the definition of NP-completenss and Cook's Theorem presents strategies for demonstrating that a problem is NP-complete. 
  • Increased coverage of space complexity including Savitch's Theorem and  P-space completeness.
  • Organized to provide flexibility to design courses that concentrate in specific areas such as automata theory, computability theory, or computational complexity.
  • Topics covered with greater emphasis include the use of diagonalization and self-reference in proofs by contradiction, the application of regular expressions in text searching using grep as an example, the CYK parsing algorithm, the motivation for and interpretation of nondeterministic computation, the role of the problem representation in the assessment of computational complexity, and the significance of problem reduction in decidability and undecidability.

  • Expanded coverage of computational complexity.

 

  • Over 100 new exercises and examples with a strong focus on the science of computing.

 

  • Increased presentation of problem reduction and decideability.

 

  • Added material on parsing.

 

  • More coverage on undecideability.

Introduction

 

Part I: Foundations

 

Chapter 1: Mathematical Preliminaries

1.1 Set Theory

1.2 Cartesian Product, Relations, and Functions

1.3 Equivalence Relations

1.4 Countable and Uncountable Sets

1.5 Diagonalization and Self-Reference

1.6 Recursive Definitions

1.7 Mathematical Induction

1.8 Directed Graphs

Exercises

Bibliographic Notes

 

Chapter 2: Languages

2.1 Strings and Languages

2.2 Finite Specification of Languages

2.3 Regular Sets and Expressions

2.4 Regular Expressions and Text Searching

Exercises

Bibliographic Notes

 

Part II: Grammars, Automata, and Languages

 

Chapter 3: Context-Free Grammars

3.1 Context-Free Grammars and Languages

3.2 Examples of Grammars and Languages

3.3 Regular Grammars

3.4 Verifying Grammars

3.5 Leftmost Derivations and Ambiguity

3.6 Context-Free Grammars and Programming Language Definition

Exercises

Bibliographic Notes

 

Chapter 4: Normal Forms for Context-Free Grammars

4.1 Grammar Transformations

4.2 Elimination of Rules

4.3 Elimination of Chain Rules

4.4 Useless Symbols

4.5 Chomsky Normal Form

4.6 The CYK Algorithm

4.7 Removal of Direct Left Recursion

4.8 Greibach Normal Form

Exercises

Bibliographic Notes

 

Chapter 5: Finite Automata

5.1 A Finite-State Machine

5.2 Deterministic Finite Automata

5.3 State Diagrams and Examples

5.4 Nondeterministic Finite Automata

5.5 Transitions

5.6 Removing Nondeterminism

5.7 DFA Minimization

Exercises

Bibliographic Notes

 

Chapter 6: Properties of Regular Languages

6.1 Finite-State Acceptance of Regular Languages

6.2 Expression Graphs

6.3 Regular Grammars and Finite Automata

6.4 Closure Properties of Regular Languages

6.5 A Nonregular Language

6.6 The Pumping Lemma for Regular Languages

6.7 The Myhill-Nerode Theorem

Exercises

Bibliographic Notes

 

Chapter 7: Pushdown Automata and Context-Free Languages

7.1 Pushdown Automata

7.2 Variations on the PDA Theme

7.3 Acceptance of Context-Free Languages

7.4 The Pumping Lemma for Context-Free Languages

7.5 Closure Properties of Context-Free Languages

Exercises

Bibliographic Notes

 

Part III: Computability

 

Chapter 8: Turing Machines

8.1 The Standard Turing Machine

8.2 Turing Machines as Language Acceptors

8.3 Alternative Acceptance Criteria

8.4 Multitrack Machines

8.5 Two-Way Tape Machines

8.6 Multitape Machines

8.7 Nondeterministic Turing Machines

8.8 Turing Machines as Language Enumerators

Exercises

Bibliographic Notes

 

Chapter 9: Turing Computable Functions

9.1 Computation of Functions

9.2 Numeric Computation

9.3 Sequential Operation of Turing Machines

9.4 Composition of Functions

9.5 Uncomputable Functions

9.6 Toward a Programming Language

Exercises

Bibliographic Notes

 

Chapter 10: The Chomsky Hierarchy

10.1 Unrestricted Grammars

10.2 Context-Sensitive Grammars

10.3 Linear-Bounded Automata

10.4 The Chomsky Hierarchy

Exercises

Bibliographic Notes

 

Chapter 11: Decision Problems and the Church-Turing Thesis

11.1 Representation of Decision Problems

11.2 Decision Problems and Recursive Languages

11.3 Problem Reduction

11.4 The Church-Turing Thesis

11.5 A Universal Turing Machine

Exercises

Bibliographic Notes

 

Chapter 12: Undecidability

12.1 The Halting Problem for Turing Machines

12.2 Problem Reduction and Undecidability

12.3 Additional Halting Problem Reductions

12.4 Rice’s Theorem

12.5 An Unsolvable Word Problem

12.6 The Post Correspondence Problem

12.7 Undecidable Problems in Context-Free Grammars

Exercises

Bibliographic Notes

 

Chapter 13: Mu-Recursive Functions

13.1 Primitive Recursive Functions

13.2 Some Primitive Recursive Functions

13.3 Bounded Operators

13.4 Division Functions

13.5 G¨odel Numbering and Course-of-Values Recursion

13.6 Computable Partial Functions

13.7 Turing Computability and Mu-Recursive Functions

13.8 The Church-Turing Thesis Revisited

Exercises

Bibliographic Notes

 

Part IV: Computational Complexity

 

Chapter 14: Time Complexity

14.1 Measurement of Complexity

14.2 Rates of Growth

14.3 Time Complexity of a Turing Machine

14.4 Complexity and Turing Machine Variations

14.5 Linear Speedup

14.6 Properties of Time Complexity of Languages

14.7 Simulation of Computer Computations

Exercises

Bibliographic Notes

 

Chapter 15: P, NP, and Cook's Theorem 

15.1 Time Complexity of Nondeterministic Turing Machines

15.2 The Classes P and NP

15.3 Problem Representation and Complexity

15.4 Decision Problems and Complexity Classes

15.5 The Hamiltonian Circuit Problem

15.6 Polynomial-Time Reduction

15.7 P = NP?

15.8 The Satisfiability Problem

15.9 Complexity Class Relations

Exercises

Bibliographic Notes

 

Chapter 16: NP-Complete Problems

16.1 Reduction and NP-Complete Problems

16.2 The 3-Satisfiability Problem

16.3 Reductions from 3-Satisfiability

16.4 Reduction and Subproblems

16.5 Optimization Problems

16.6 Approximation Algorithms

16.7 Approximation Schemes

Exercises

Bibliographic Notes

 

Chapter 17: Additional Complexity Classes

17.1 Derivative Complexity Classes

17.2 Space Complexity

17.3 Relations between Space and Time Complexity

17.3 P-Space, NP-Space, and Savitch’s Theorem

17.4 P-Space Completeness

17.5 An Intractable Problem

Exercises

Bibliographic Notes

 

Part V: Deterministic Parsing

 

Chapter 18: Parsing: An Introduction

18.1 The Graph of a Grammar

18.2 A Top-Down Parser

18.3 Reductions and Bottom-Up Parsing

18.4 A Bottom-Up Parser

18.5 Parsing and Compiling

Exercises

Bibliographic Notes

 

Chapter 19: LL(k) Grammars

19.1 Lookahead in Context-Free Grammars

19.2 FIRST, FOLLOW, and Lookahead Sets

19.3 Strong LL(k) Grammars

19.4 Construction of FIRSTk Sets

19.5 Construction of FOLLOWk Sets

19.6 A Strong LL(l) Grammar

19.7 A Strong LL(k) Parser

19.8 LL(k) Grammars

Exercises

Bibliographic Notes

 

Chapter 20: LR(k) Grammars

20.1 LR(0) Contexts

20.2 An LR(0) Parser

20.3 The LR(0) Machine

20.4 Acceptance by the LR(0) Machine

20.5 LR(1) Grammars

Exercises

Bibliographic Notes

 

Appendix I

Index of Notation

 

Appendix II

The Greek Alphabet

 

Appendix III

Table of ASCII Characters

 

Appendix IV

Backus-Naur Definition of Java

 

Bibliography

Subject Index

Online Solutions Manual, 3/E
Sudkamp
©2006 | Addison-Wesley | Electronic Supplement | Instock
ISBN-10: 0321348737 | ISBN-13: 9780321348739
    View Downloadable Files

CS Support-Student Support Material
Addison-Wesley
©2008 | Addison-Wesley | On-line Supplement | Instock
ISBN-10: 0321446852 | ISBN-13: 9780321446855


Pearson Higher Education offers special pricing when you choose to package your text with other student resources. If you're interested in creating a cost-saving package for your students contact your Pearson Higher Education representative.