Download - Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Transcript
Page 1: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Automata Based Programming

Margarita Spitšakova

Institute of Cybernetics at Tallinn University of Technology

19.03.08

Page 2: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Outline

• Introduction• Definition of FSM• Usage of FSM• FSM as programs• Example• Future work• Conclusions• Software, further reading

Page 3: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Introduction

• Master thesis: “Genetic Inference of Finite State Machines”

• Finite state machine is something abstract

• Why I need to generate FSMs?

Page 4: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Finite State Machines

• States, transitions, input and output alphabets, final state, initial state.

• Moore machine (output at state)• Mealy machine (output at transition)

• Deterministic machine

Page 5: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Using FSM

• FSM as hardware model

• Text recognition (regular expressions)• Text transformations

• Pushdown automata in parsers

Page 6: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

FSM as program

Event

Controller=

Finite State

Machines

Controlled object

Event

Event Controlled object

Controlled object

Page 7: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Example. Traffic Lights

Red

Green

Yellow

Blinkinggreen

Red+

yellow

Page 8: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Model

Page 9: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Source code. Controlled objectpublic class TrafficLight implements ControlledObject {public void red(StateMachineContext context) {

System.out.println("Red"); }

public void green(StateMachineContext context) {System.out.println("Green");

}public void yellow(StateMachineContext context) {

System.out.println("Yellow"); }

public void greenblink(StateMachineContext context) {System.out.println("Green Blinking");

}

public void redyellow(StateMachineContext context) {System.out.println("red yellow");

}}

Page 10: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

FSM

Page 11: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Source code. Controller switch (s) { case green: switch (event) { case next tick: if (counter_x4 < 20) { make transition to state “blinking green”;

return new StateMachineConfig("blinking green");

} if (counter_x4 >= 20) { make transition to final state; return new StateMachineConfig(" final state "); }

…}

Switch technology

Page 12: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Conclusions

• Modeling system• Modeling=writing the code• Step-by-step• Easier to verify• Good for modeling reactive systems

Page 13: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Future work

Event

Controller=

Finite State

Machine

Controlled object

Event

Event Controlled object

Controlled object

Can be generated

Page 14: Automata Based Programming Margarita Spitšakova Institute of Cybernetics at Tallinn University of Technology 19.03.08.

Software. Further reading

• Unimod. Eclipse plugin for designing object-oriented event-driven applications using automata-based programming adapted for UML. http://unimod.sourceforge.net

• AutoFSM. http://autogen.sourceforge.net

• Сайт по автоматному программированию http://is.ifmo.ru/