论文标题
声明流运行时验证(HLOLA)
Declarative Stream Runtime Verification (hLola)
论文作者
论文摘要
流运行时验证是一种形式的动态分析技术,它概括了从LTL等时间逻辑到流监视的运行时验证算法,从而使比布尔值(包括定量和任意数据)计算更丰富的验证。在本文中,我们研究了实施对任意数据理论真正扩展的SRV引擎的问题,并提出了一种解决方案作为Haskell嵌入式域特定语言。尽管时间依赖性和数据计算之间SRV的理论清洁分离,但以前的引擎包括一些数据类型的临时实现,需要复杂的更改才能结合新的数据理论。我们在这里提出了一种称为Hlola的SRV语言,该语言借用了Haskell类型,并将其透明地嵌入EDSL中。我们称之为提升深嵌入的这种新颖技术允许使用高阶函数进行静态流参数化。我们描述了Hlola的Haskell实现,并说明了使用库实施的简单扩展,这些扩展需要在其他临时SRV形式主义中长期添加。
Stream Runtime Verification is a formal dynamic analysis technique that generalizes runtime verification algorithms from temporal logics like LTL to stream monitoring, allowing to compute richer verdicts than Booleans (including quantitative and arbitrary data). In this paper we study the problem of implementing an SRV engine that is truly extensible to arbitrary data theories, and we propose a solution as a Haskell embedded domain specific language. In spite of the theoretical clean separation in SRV between temporal dependencies and data computations, previous engines include ad-hoc implementations of a few data types, requiring complex changes to incorporate new data theories. We propose here an SRV language called hLola that borrows general Haskell types and embeds them transparently into an eDSL. This novel technique, which we call lift deep embedding, allows for example, the use of higher-order functions for static stream parameterization. We describe the Haskell implementation of hLola and illustrate simple extensions implemented using libraries, which require long and error-prone additions in other ad-hoc SRV formalisms.