1 Automata CIS 5513 Automata and Formal Languages

  • Slides: 10
Download presentation
1. Automata CIS 5513 - Automata and Formal Languages – Pei Wang

1. Automata CIS 5513 - Automata and Formal Languages – Pei Wang

Abstract machines Automata: machines, devices, or systems described abstractly for the purpose of computability

Abstract machines Automata: machines, devices, or systems described abstractly for the purpose of computability Focus: common features of different devices, as well as their limitations Abstraction: internal activity as transitions through discrete states; external interaction as streams of symbols

Examples �An on/off switch �A pocket calculator that computes the value of arithmetic expressions

Examples �An on/off switch �A pocket calculator that computes the value of arithmetic expressions �A lexical analyzer that recognizes certain keywords In principle, any software or hardware can be analyzed as an automaton, though such an analysis only answers certain questions

Automata and formal languages The external features of automata can be described as formal

Automata and formal languages The external features of automata can be described as formal languages A formal language is defined as a set of symbolic sentences The patterns of the sentences of a formal language can be summarized into a grammar or expression There is a correspondence between automata and formal languages

String and word An alphabet is a finite, nonempty set of symbols, usually written

String and word An alphabet is a finite, nonempty set of symbols, usually written as ∑ (sigma), such as {0, 1} or {a, b, …, z} A string (word) is a finite sequence of symbols chosen from some alphabet, such as 01001, cis, or ϵ (epsilon, empty string) The length of a string is the number of symbols in it, so |01001| = 5, |ϵ| = 0

Strings �∑k is the set of all strings of length k formed by symbols

Strings �∑k is the set of all strings of length k formed by symbols in ∑ �∑* is the set of all strings of any finite length formed by symbols in ∑ (Kleene star) �∑* = ∑ 0 ∑ 1 ∑ 2 … �∑+ = ∑ 1 ∑ 2 … Let x and y be strings, then xy is their concatenation, and |xy| = |x| + |y|

Formal languages A language over ∑ is a subset of ∑*. E. g. :

Formal languages A language over ∑ is a subset of ∑*. E. g. :

Problems and languages In mathematics and computer science, a “problem” is often defined as

Problems and languages In mathematics and computer science, a “problem” is often defined as a function from input to output In principle, a function problem can be converted into a decision problem that only has “yes/no” answers So to solve a problem means to decide whether a given string belongs to a particular language

Languages and automata Example: Lp over {0, 1} consisting of all binary strings whose

Languages and automata Example: Lp over {0, 1} consisting of all binary strings whose value as a binary number is a prime, so 101 belongs to the language, but not 1001 and 0101 An automaton accepts a language by transitioning between some special states for the instances of the language So each automaton solves a problem

Mathematical proofs Mathematical conclusions (theorems) are obtained by proofs �Deductive proof: to build a

Mathematical proofs Mathematical conclusions (theorems) are obtained by proofs �Deductive proof: to build a sequence of sentences, each is either an axiom or can be derived from axioms and proven theorems �Proof by contradiction: to negate a statement and derive a contradiction from it