Get Free Shipping on orders over $89
Texts in Computer Science : Design, Implement, Validate, and Prove - Marco T. Morazan

Texts in Computer Science

Design, Implement, Validate, and Prove

By: Marco T. Morazan

Hardcover | 19 December 2023

At a Glance

Hardcover


$99.00

or 4 interest-free payments of $24.75 with

 or 

Ships in 5 to 7 business days

This textbook introduces formal languages and automata theory for upper-level undergraduate or beginning graduate students. While it contains the traditional mathematical development usually employed in computational theory courses, it is also quite different from many of them. Machines, grammars, and algorithms developed as part of a constructive proof are intended to be rendered as programs.



The book is divided into four parts that build on each other. Part I reviews fundamental concepts. It introduces programming in FSM and reviews program design. In addition, it reviews essential mathematical background on sets, relations, and reasoning about infinite sets. Part II starts the study of formal languages and automata theory in earnest with regular languages. It first introduces regular expressions and shows how they are used to write programs that generate words in a regular language. Given that regular expressions generate words, it is only natural to ask how a machine can recognize words in a regular language. This leads to the study of deterministic and nondeterministic finite-state machines. Part III starts the exploration of languages that are not regular with context-free languages. It begins with context-free grammars and pushdown automata to generate and recognize context-free languages, and it ends with a discussion of deterministic pushdown automata and illustrates why these automatons are fundamentally different from nondeterministic pushdown automata. Part IV eventually explores languages that are not context-free, known as context-sensitive languages. It starts by discussing the most powerful automaton known to mankind: the Turing machine. It then moves to grammars for context-sensitive languages, and their equivalence with Turing machines is explored. The book ends with a brief chapter introducing complexity theory and explores the question of determining if a solution to a problem is practical.


More in Software Engineering

Design Patterns : Elements of Reusable Object-Oriented Software - Erich Gamma
The Essence of Software Engineering - Cersei Page
Building Microservices : Designing Fine-Grained Systems 2nd Edition - Sam Newman
Coding All-in-One For Dummies : 2nd Edition - Chris Minnick

RRP $69.95

$46.99

33%
OFF
Refactoring 2ed : Improving the Design of Existing Code - Martin Fowler
Hacking For Dummies : For Dummies (Computer/Tech) - Kevin Beaver

RRP $49.95

$36.75

26%
OFF
Git : Pocket Guide : A Working Introduction - Richard Silverman

RRP $47.75

$38.20

20%
OFF
Arduino for Dummies : Blackwell Philosophy Anthologies - John Nussey
C# 12 in a Nutshell : The Definitive Reference - Joseph Albahari

RRP $133.00

$106.40

20%
OFF
C# 12 Pocket Reference : Instant Help for C# 12 Programmers - Joseph Albahari
Typescript Cookbook : Real World Type-Level Programming - Stefan Baumgartner
Learning Algorithms : A Programmer's Guide to Writing Better Code - George Heineman
Architectural Approach to Level Design : Second edition - Christopher W.  Totten