The theory of computation is used to address challenges arising in many computer science areas such as artificial intelligence, language processors, compiler writing, information and coding systems, programming language design, computer architecture and more. To grasp topics concerning this theory readers need to familiarize themselves with its computational and language models, based on concepts of discrete mathematics including sets, relations, functions, graphs and logic.
This handbook introduces with rigor the important concepts of this kind and uses them to cover the most important mathematical models for languages and computation, such as various classical as well as modern automata and grammars. It explains their use in such crucially significant topics of computation theory as computability, decidability, and computational complexity. The authors pay special attention to the implementation of all these mathematical concepts and models and explains clearly how to encode them in computational practice. All computer programs are written in C#.
- Chapter 1: Sets, Sequences and Languages
- Chapter 2: Relations and Functions
- Chapter 3: Graphs
- Part 2: Classical Models for Languages and Computation
- Chapter 4: Relations and Language Models
- Chapter 5: Finite Automata
- Chapter 6: Context-Free Grammars
- Chapter 7: Pushdown Automata
- Chapter 8: Turing Machines
- Chapter 9: Computability
- Chapter 10: Decidability
- Part 3: Alternative Models for Languages and Computation
- Chapter 11: Context-Dependent Grammars
- Chapter 12: Regulated Models
- Chapter 13: Parallel Grammatical Models
- Chapter 14: Jumping Models
- Chapter 15: Deep Pushdown Automata
- Part 4: Applications
- Chapter 16: Applications in General
- Chapter 17: Applications in Syntax Analysis: Programming Languages
- Chapter 18: Applications in Syntax Analysis: Natural Languages
- Chapter 19: Applications in Biology
- Part 5: Conclusion
- Chapter 20: Concluding Remarks
Brno University of Technology, Czech Republic.
Alexander Meduna is Full Professor of Computer Science at the Brno University of Technology, Czech Republic. He has taught mathematics and computer science at various European, Asian, and American universities, including the University of Missouri, USA, where he spent a decade teaching advanced topics of the formal language theory and its applications in computer science. He is the author of several books and many papers on the topic.Petr Horáček Software Engineer.
Petr Horáček works as a software engineer in research and development for BioVendor - Laboratorni medicina a.s. (a laboratory for automation and diagnostic devices) in Brno, Czech Republic. Under the supervision of Alexander Meduna, he received his PhD from the Brno University of Technology, Czech Republic, in 2015.Martin Tomko PhD Student.
Brno University of Technology, Faculty of Information Technology, Czech Republic.
Martin Tomko is a PhD Student supervised by Alexander Meduna at the Faculty of Information Technology, Brno University of Technology, Czech Republic.