Automata-based programming

Automata-based programming

Automata-based programming is a programming paradigm in which the program or part of it is thought of as a model of a finite-state machine (FSM) or any other (often more complicated) formal automaton (see automata theory). Sometimes a potentially infinite set of possible states is introduced, and such a set can have a complicated structure, not just an enumeration. The following properties are key indicators for automata-based programming: The whole execution of the automata-based code is a cycle of the automaton steps.

Comment
enAutomata-based programming is a programming paradigm in which the program or part of it is thought of as a model of a finite-state machine (FSM) or any other (often more complicated) formal automaton (see automata theory). Sometimes a potentially infinite set of possible states is introduced, and such a set can have a complicated structure, not just an enumeration. The following properties are key indicators for automata-based programming: The whole execution of the automata-based code is a cycle of the automaton steps.
Depiction
Finite-state machine state-diagram.png
Has abstract
enAutomata-based programming is a programming paradigm in which the program or part of it is thought of as a model of a finite-state machine (FSM) or any other (often more complicated) formal automaton (see automata theory). Sometimes a potentially infinite set of possible states is introduced, and such a set can have a complicated structure, not just an enumeration. Finite-state machine-based programming is generally the same, but, formally speaking, does not cover all possible variants, as FSM stands for finite-state machine, and automata-based programming does not necessarily employ FSMs in the strict sense. The following properties are key indicators for automata-based programming: * The time period of the program's execution is clearly separated down to the automaton steps. Each step is effectively an execution of a code section (same for all the steps) which has a single entry point. That section might be divided down to subsections to be executed depending on different states, although this is not necessary. * Any communication between the automaton steps is only possible via the explicitly noted set of variables named the automaton state. Between any two steps, the program cannot have implicit components of its state, such as local variables' values, return addresses, the current instruction pointer, etc. That is, the state of the whole program, taken at any two moments of entering an automaton step, can only differ in the values of the variables being considered as the automaton state. The whole execution of the automata-based code is a cycle of the automaton steps. Another reason for using the notion of automata-based programming is that the programmer's style of thinking about the program in this technique is very similar to the style of thinking used to solve mathematical tasks using Turing machines, Markov algorithms, etc.
Hypernym
Paradigm
Is primary topic of
Automata-based programming
Label
enAutomata-based programming
Link from a Wikipage to an external page
is.ifmo.ru/books/_book.pdf
web.archive.org/web/20080202163122/http:/www.cs.ucsb.edu/~seclab/projects/stat/index.html
is.ifmo.ru
web.archive.org/web/20080318180229/http:/dec.bournemouth.ac.uk/forth/jfar/vol7/paper1/paper.html
www.wisdom.weizmann.ac.il/~dharel/SCANNED.PAPERS/Statecharts.pdf
Link from a Wikipage to another Wikipage
Automata theory
Automation
C (programming language)
C++
Category:Programming paradigms
cc
Cellular automaton
Communication protocol
Computer program
Continuations
Encapsulation (computer science)
End-of-file
Esterel
Event-driven programming
File:Finite-state machine state-diagram.png
Finite-state machine
Formal specification
Forth (programming language)
GUI
Imperative programming
Instruction pointer
Lexical analysis
Local variable
Markov algorithm
Newline
Nondeterministic programming
Object-oriented programming
output
Peter Naur
Programming language
Programming paradigm
Program state
Pseudo-code
Refal
Scheme (programming language)
Standard streams
State (computer science)
State diagram
State pattern
State-transition table
Syntactic analysis
Turing machine
Umple
Unified Modeling Language
Whitespace character
SameAs
3kabz
Automataalapú programozás
Automata-based programming
m.098fnh
Programação orientada a autômatos
Q4056322
Автоматне програмування
Автоматное программирование
Аутоматно програмирање
برنامه‌نویسی مبتنی بر اتوماتا
自动机编程
Subject
Category:Programming paradigms
Thumbnail
Finite-state machine state-diagram.png?width=300
WasDerivedFrom
Automata-based programming?oldid=1077795284&ns=0
WikiPageLength
25013
Wikipage page ID
3377755
Wikipage revision ID
1077795284
WikiPageUsesTemplate
Template:BEFORE, &nop%7D, %7BBEFORE, &nop%7D, %7BINSIDE, &print
Template:BEFORE, &print%7D, %7BAFTER, &nop%7D, %7BAFTER, &nop
Template:BEFORE, &print%7D, %7BAFTER, &nop%7D, %7BINSIDE, &print
Template:Cite journal
Template:Diagonal split header
Template:IETF RFC
Template:Other uses
Template:Programming paradigms
Template:Short description