000 04666nam a22005175i 4500
001 978-3-031-43973-5
003 DE-He213
005 20240730170750.0
007 cr nn 008mamaa
008 231218s2024 sz | s |||| 0|eng d
020 _a9783031439735
_9978-3-031-43973-5
024 7 _a10.1007/978-3-031-43973-5
_2doi
050 4 _aQA267-268.5
072 7 _aUYA
_2bicssc
072 7 _aCOM014000
_2bisacsh
072 7 _aUYA
_2thema
082 0 4 _a005.131
_223
100 1 _aMorazán, Marco T.
_eauthor.
_4aut
_4http://id.loc.gov/vocabulary/relators/aut
_995174
245 1 0 _aProgramming-Based Formal Languages and Automata Theory
_h[electronic resource] :
_bDesign, Implement, Validate, and Prove /
_cby Marco T. Morazán.
250 _a1st ed. 2024.
264 1 _aCham :
_bSpringer Nature Switzerland :
_bImprint: Springer,
_c2024.
300 _aXXIII, 524 p. 163 illus., 38 illus. in color.
_bonline resource.
336 _atext
_btxt
_2rdacontent
337 _acomputer
_bc
_2rdamedia
338 _aonline resource
_bcr
_2rdacarrier
347 _atext file
_bPDF
_2rda
490 1 _aTexts in Computer Science,
_x1868-095X
505 0 _aPart I: Fundamental Concepts -- 1. Introduction to FSM -- 2. Essential Background -- 3. Types of Proofs -- Part II: Regular Languages -- 4. Regular Expressions -- 5. Deterministic Finite-State Machines -- 6. Nondeterministic Finite State Machines -- 7. Finite-State Automatons and Regular Expressions -- 8. Regular Grammars -- 9. Languages that are not Regular -- Part III: Context-Free Languages -- 10. Context-Free Grammars -- 11. Pushdown Automata -- 12. Equivalence of pdas and cfgs -- 13. Properties of Context-Free Languages -- 14. Deterministic PDAs -- Part IV: Context-Sensitive Languages -- 15. Turing Machines -- 16. Turing Machine Composition -- 17. Turing Machine Extensions -- 18. Context-Sensitive Grammars -- 19. Church-Turing Thesis and Undecidability -- 20. Complexity -- Part V: Epilogue -- 21. Where to Go From Here.
520 _aThis 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.
650 0 _aMachine theory.
_995176
650 0 _aSoftware engineering.
_94138
650 1 4 _aFormal Languages and Automata Theory.
_995178
650 2 4 _aSoftware Engineering.
_94138
710 2 _aSpringerLink (Online service)
_995181
773 0 _tSpringer Nature eBook
776 0 8 _iPrinted edition:
_z9783031439728
776 0 8 _iPrinted edition:
_z9783031439742
776 0 8 _iPrinted edition:
_z9783031439759
830 0 _aTexts in Computer Science,
_x1868-095X
_995183
856 4 0 _uhttps://doi.org/10.1007/978-3-031-43973-5
912 _aZDB-2-SCS
912 _aZDB-2-SXCS
942 _cEBK
999 _c87152
_d87152