• 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