DocumentCode :
177136
Title :
Data Automata in Scala
Author :
Havelund, Klaus
Author_Institution :
Jet Propulsion Lab., California Inst. of Technol., Pasadena, CA, USA
fYear :
2014
fDate :
1-3 Sept. 2014
Firstpage :
1
Lastpage :
9
Abstract :
The field of runtime verification has during the last decade seen a multitude of systems for monitoring event sequences (traces) emitted by a running system. The objective is to ensure correctness of a system by checking its execution traces against formal specifications representing requirements. A special challenge is data parameterized events, where monitors have to keep track of the combination of control states as well as data constraints, relating events and the data they carry across time points. This poses a challenge wrt. efficiency of monitors, as well as expressiveness of logics. Data automata is a form of automata where states are parameterized with data, supporting monitoring of data parameterized events. We describe the full details of a very simple API in the Scala programming language, an internal DSL (Domain-Specific Language), implementing data automata. The small implementation suggests a design pattern. Data automata allow transition conditions to refer to other states than the source state, and allow target states of transitions to be inlined, offering a temporal logic flavored notation. An embedding of a logic in a high-level language like Scala in addition allows monitors to be programmed using all of Scala´s language constructs, offering the full flexibility of a programming language. The framework is demonstrated on an XML processing scenario previously addressed in related work.
Keywords :
application program interfaces; automata theory; formal verification; specification languages; system monitoring; temporal logic; API; Scala programming language; XML processing; control states; data automata; data constraints; data parameterized event monitoring; design pattern; domain-specific language; event sequence monitoring; execution traces; formal specifications; high-level language; internal DSL; runtime verification; temporal logic flavored notation; transition conditions; Automata; DSL; Monitoring; Pattern matching; Servers; XML; Scala; XML; internal DSL; monitor; parameterized state machines; runtime verification;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Theoretical Aspects of Software Engineering Conference (TASE), 2014
Conference_Location :
Changsha
Type :
conf
DOI :
10.1109/TASE.2014.37
Filename :
6976561
Link To Document :
بازگشت