TRACECONTRACT: A Scala DSL for Trace Analysis
In this paper, the authors describe TRACECONTRACT, an API for trace analysis, implemented in the SCALA programming language. They argue that for certain forms of trace analysis the best weapon is a high level programming language augmented with constructs for temporal reasoning. A trace is a sequence of events, which may for example be generated by a running program, instrumented appropriately to generate events. The API supports writing properties in a notation that combines an advanced form of data parameterized state machines with temporal logic. The implementation utilizes SCALA's support for defining internal Domain Specific Languages (DSLs).