

If the students are strong in mathematical thinking and proofs, an instructor may wish to assign the project as homework. The completion of the project requires two weeks. Also presented in the project is Kleene’s proof of the equivalence between the expressiveness of regular expressions and finite automata. Students will learn that Kleene’s original definition of a finite automaton is more liberal than the textbook’s definition given by Rabin and Scott. Before working on the project, students are expected to have studied the concepts of finite automata and regular languages from a modern textbook. The project can be used in a senior undergraduate or beginning graduate level course on the theory of computation.

For more projects, see Primary Historical Sources in the Classroom: Discrete Mathematics and Computer Science. Our project is part of a larger collection published in Convergence. The comprehensive “Notes to the Instructor” presented next are also appended to the project itself. Our project, Regular Languages and Finite Automata, is ready for students, and the Latex source is also available for instructors who may wish to modify the project for students. In particular, we learn Kleene’s own proof of the theorem, now called Kleene’s theorem, that shows finite automata and regular expressions are equivalent in their expressiveness for denoting languages. In this project for computer science students in a theory of computation course, we study Kleene’s concept of finite automata and regular expressions. While a lower level assembly-styled language with simpler syntax is sufficient to program the computer to do whatever a high level language can do, the programming community embraces higher level programming languages like Java, C++, and Python for higher productivity. A similar situation happens with programming languages.

However, Kleene’s more complex model of finite automata actually allows the user to express ideas more easily, even though formally both models are equivalent in their expressiveness. In a paper published in 1959, Michael Rabin and Dana Scott presented finite automata in the simplest mathematical model. A finite automaton can be considered as the simplest machine model in that the machine has a finite memory that is, the memory size is independent of the input length. Following on their ideas, Stephen Cole Kleene (1909–1994) wrote the first paper on finite automata and regular expressions in 1956. In 1943, Warren McCulloch and Walter Pitts published a pioneering work on a logical model for studying the behavior of nervous systems in the Bulletin of Mathematical Biophysics. It also covers other finite state-based modeling approaches and applications, including Petri nets, statecharts, temporal logic, and UML state machine diagrams.Stephen Cole Kleene (Source: Wikimedia Commons) Moving on to applications, the book explores regular path queries on graph-structured data, timed automata in model checking security protocols, pattern matching, compiler design, and XML processing.
FINITE STATE AUTOMATA PDF MATHS SOFTWARE
It then presents algorithms for the minimization and incremental construction of finite automata and describes Esterel, an automata-based synchronous programming language for embedded system software development. The book first introduces the fundamentals of automata theory, including regular expressions, as well as widely used automata, such as transducers, tree automata, quantum automata, and timed automata.

For more experienced researchers, it is suitable as a source of in-depth study in this area. For beginners, the book is a handy reference for quickly looking up model details. Handbook of Finite State Based Models and Applications provides a complete collection of introductory materials on finite state theories, algorithms, and the latest domain applications. Applicable to any problem that requires a finite number of solutions, finite state-based models (also called finite state machines or finite state automata) have found wide use in various areas of computer science and engineering.
