Finite State Automata and Linear Grammars

(有限オートマトンと線形文法)

Language Theory and Compilers

3rd lecture, April 21, 2017

http://www.sw.it.aoyama.ac.jp/2017/CP1/lecture3.html

Martin J. Dürst

AGU

© 2005-17 Martin J. Dürst 青山学院大学

Today's Schedule

 

Homework 1

 

Homework 2

 

Homework 2 (Additional Problem)

 

Cygwin Download and Installation

(no need to submit, but bring your note PC with you if you have problems)
On your note PC, install cygwin (detailled instructions with screenshots).
Make sure you select/install all of gcc, flex, bison, diff, make and m4.

 

Checking flex, bison, gcc,... Installation

To check your installation of the various programs, start up a Cygwin Terminal session, and use the following commands to check the version of each software:

 

Summary of Last Lecture

grammar type lanugage type automaton
phrase structure grammar (psg) 0 phrase structure language Turing machine
context-sensitive grammar (csg) 1 context-sensitive language linear-bounded automaton
context-free grammar (cfg) 2 context-free language push-down automaton
regular grammar (rg) 3 regular language finite state automaton

Regular languages are used for lexical analysis.

 

Plan for this Lecture

These all are equivalent, and define/accept regular languages

 

Finite State Automaton Example

(automaton (αὐτόματον) is Greek; plural: automata)

Finite state automata are often represented with a state transition diagram

有限オートマトンの状態遷移図

Arrow from outside: initial state
Circles: states
Double circles: accepting state(s)
Arrows with labels: transitions

 

Workings of a Finite State Automaton

 

Examples of Finite State Automata

 

State Transition Tables

Finite state automata can also be represented with state transition tables.

The state transition table for our example automaton is:


a b
→A B A
B C A
*C C A

Leftmost column: state
Top row: input symbol
→: start state (first state if not otherwise indicated)
*: accepting state(s)
Table contents: state after transition

 

Formal Definition of FSAs

A finite state automaton is defined as a quintuple (Q, Σ, δ, q0, F)

 

Nondeterministic Finite Automata

 

ε Transition

(epsilon transition)

 

Comparing DFAs and NFAs


Deterministic (DFA) Nondeterministic (NFA)
concurrently occupied states one single state multiple states (set of states)
acceptance criterion current state is accepting state one of the occupied states is accepting state
ε transition prohibited allowed
type of transition function δ: Q × ΣQ δ: Q × (Σ ∪ {ε}) → P(Q)

(there are also NFAs without ε transition)

 

Equivalence of DFA and NFA

 

Conversion from an NFA to an Equivalent DFA

 

Example of Conversion from NFAto DFA

State Transition Table

ε 0 1
→S {A} {} {}
A {} {A,C} {B}
B {} {} {A}
*C {} {} {}

 

Linear Grammar

Simple Rewriting Rules
Rule Shape Name
AcB right linear rule (nonterminal on the right)
ABc left linear rule (nonterminal on the left)
Ac constant rule

A left linear grammar is a grammar only using left linear rules and constant rules

A right linear grammar is a grammar only using right linear rules and constant rules

(in both cases, a special rule Sε is allowed)

Left linear grammars and right linear grammars are together called linear grammars (or regular grammars)

(a grammar that contains both left linear rules and right linear rules is not a linear grammar, but a kind of context-free grammar)

 

(Right) Linear Grammars and FSAs

Right linear grammars and NFAs correspond as follows (not consideringε transitions):

There is a similar correspondence for left linear grammars (imagine reading the input backwards)

 

Example of Linear Grammar and NFA

有限オートマトンの状態遷移図

A → aB | bA

B → bA | aC | a

C → bA | aC | a

 

Conversion between Right Linear Grammar and NFA

From automaton to grammar:

From grammar to automaton:

 

Today's Summary

Callenge: Regular languages can be represented by state transition diagrams/tables of NFAs/DFAs, or with regular grammars, but a more compact representation is desirable

 

Homework

Deadline: April 27, 2017 (Thursday), 19:00

Where to submit: Box in front of room O-529 (building O, 5th floor)

Format: A4 single page (using both sides is okay; NO cover page), easily readable handwriting (NO printouts), name (kanji and kana) and student number at the top right

  1. Draw a state transition diagram for a finite state automaton that recognizes all inputs that (at the same time)
  2. Draw the state transition diagram for the NFA in the state transition table below

    ε 0 1
    →S {B} {C} {A}
    A {C} {} {D, B}
    B {} {D} {A}
    *C {} {D} {A, B}
    D {} {A, B} {}
  3. Create the state transition table of the DFA that is equivalent to the NFA in 2. (do not rename states)
  4. Check the versions of flex, bison, gcc, make, and m4 that you installed (no need to submit, but bring your computer to the next lecture if you have a problem)

 

Glossary

Finite state automaton (FSA)
有限アウトマトン
deterministic finite automaton (DFA)
決定性有限オートマトン
Non-deterministic finite automaton (NFA)
非決定性有限オートマトン
(left/right) linear grammar
(左・右) 線形文法
regular grammar
正規文法
state transition diagram
状態遷移図
transition
遷移
initial/start state
初期状態
accepting/final state
受理状態
accept
受理する
finite
有限
state transition table
状態遷移表
state transition function
動作関数
simultaneous(ly)
同時 (な・に)
ε transition
ε 遷移
ε closure
ε 閉包
equivalence
同等性
(left/right) linear rule
(左・右) 線形規則
constant rule
定数規則
renaming (of states)
状態の書換え