The finite-state machine has less computational power than some other models of computation such as the Turing machine. The computational power distinction means there are computational tasks that a Turing machine can do but an FSM cannot. This is because an FSM's memory is limited by the number of states it has. A finite-state machine has the same computational power as a Turing machine that is restricted such that its head may only perform "read" operations, and always has to move from left to right. FSMs are studied in the more general field of automata theory.
In addition to their use in modeling reactive systems presented here, finite-state machines are significant in many different areas, including electrical engineering, linguistics, computer science, philosophy, biology, mathematics, video game programming, and logic. Finite-state machines are a class of automata studied in automata theory and the theory of computation.In computer science, finite-state machines are widely used in modeling of application behavior (control theory), design of hardware digital systems, software engineering, compilers, network protocols, and computational linguistics.
A finite-state machine has the same computational power as a Turing machine that is restricted such that its head may only perform "read" operations, and always has to move from left to right. That is, each formal language accepted by a finite-state machine is accepted by such a kind of restricted Turing machine, and vice versa.
Finite automata are often used in the frontend of programming language compilers. Such a frontend may comprise several finite-state machines that implement a lexical analyzer and a parser.Starting from a sequence of characters, the lexical analyzer builds a sequence of language tokens (such as reserved words, literals, and identifiers) from which the parser builds a syntax tree. The lexical analyzer and the parser handle the regular and context-free parts of the programming language's grammar.
A parallel communicating automata system consists of several automata working independently in parallel andcommunicating with each other by request with the aim of recognizing a word.Rather surprisingly, returning parallel communicating finite automata systems are equivalentto the non-returning variants. We show this result by proving the equivalence of both with multihead finite automata.Some open problems are finally formulated.
ContentThis course is an introduction to two kinds of formal systems -languages (which are treated as sets of strings) and logics -with important applications to computerscience. The study of formal languages underlies important aspects ofcompilers and other language processing systems, as well as the theoryof computation. Various systems of logic and automatic reasoning areput to use in artificial intelligence, database theory and softwareengineering. The entire course will give you practice in precisethinking and proof methods that play a role in the analysis ofalgorithms.
Objectives and OutcomesWill understand the concepts and relevance of logic, formallanguages andautomata theory, and computability. Will be able to able to do mechanical formal proofs, prove program correctness for simple programs, and solve problems in first-order logic. Will be able to solve problems in elementary machine models: designing finite-state automata, pushdown automata and Turing machines. Will be able to solve problems in formal languages: writing regular expressions, regular grammars, and context-free grammars. 2b1af7f3a8