paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Predictive Monitoring against Pattern Regular Languages

面向模式正则语言的预测性运行时监控
POPL 8(POPL)2024匹配度 3/10 · 该论文属于程序验证与并发运行时监控方向,核心是面向模式正则语言的预测性监控与自动机算法,与用户画像中静态分析、LLM/Agent 交叉、浮点程序分析或贝叶斯程序分析没有直接关联。仅可算作 PL/形式化验证大方向下的相关工作。引用 11 inbox
Zhendong Ang, Umang Mathur
crossref: 2026-09-10

AI 速览

一句话:提出面向模式正则语言的预测性运行时监控,能在并发执行重排序中暴露高层时序违规,并给出常空间流式线性时间算法。

并发缺陷检测多关注数据竞争、死锁等底层问题,易遗漏仅在特定线程交错中出现的高层时序行为;现有 LTL 运行时监控多针对顺序程序,在并发下常需反复重跑。论文研究预测性运行时监控:给定执行 σ,判断能否通过重排序可靠暴露规约违反,重排序采用相邻独立动作交换的迹等价。作者证明,对一般正则语言该问题存在 O(n^α) 超线性下界(n 为事件数,α 通常对应线程数),难以高效求解。受“小 bug 深度”启发,作者识别模式语言及广义模式语言,并给出常空间、流式、线性时间算法。原型 PatternTrack 在文献基准上评估,可有效监控大规模并发应用。

问题
并发软件中高层时序规约(如 LTL)的运行时监控容易遗漏仅在复杂线程交错中出现的违规,现有方法多需反复重跑;核心问题是给定一次执行,能否通过重排序可靠暴露违规。
方法
将重排序建模为基于相邻独立动作交换的迹等价,先证明一般正则语言下预测监控具有 O(n^α) 超线性下界;再识别模式语言及广义模式语言子类,设计常空间流式线性时间算法。
评估
实现原型 PatternTrack,并在文献中的基准上评估,显示其能有效监控大规模并发应用。
原文摘要(Abstract)

While current bug detection techniques for concurrent software focus on unearthing low-level issues such as data races or deadlocks, they often fall short of discovering more intricate temporal behaviours that can arise even in the absence of such low-level issues. In this paper, we focus on the problem of dynamically analysing concurrent software against high-level temporal specifications such as LTL. Existing techniques for runtime monitoring against such specifications are primarily designed for sequential software and remain inadequate in the presence of concurrency — violations may be observed only in intricate thread interleavings, requiring many re-runs of the underlying software in conjunction with the analysis. Towards this, we study the problem of predictive runtime monitoring , inspired by the analogous problem of predictive data race detection studied extensively recently. The predictive runtime monitoring question asks, given an execution σ , if it can be soundly reordered to expose violations of a specification. In general, this problem may become easily intractable when either the specifications or the notion of reorderings used is complex. In this paper, we focus on specifications that are given in regular languages. Our notion of reorderings is trace equivalence , where an execution is considered a reordering of another if it can be obtained from the latter by successively commuting adjacent independent actions. We first show that, even in this simplistic setting, the problem of predictive monitoring admits a super-linear lower bound of O ( n α ) , where n is the number of events in the execution, and α is a parameter describing the degree of commutativity, and typically corresponds to the number of threads in the execution. As a result, predictive runtime monitoring even in this setting is unlikely to be efficiently solvable, unlike in the non-predictive setting where the problem can be checked using a deterministic finite automaton (and thus, a constant-space streaming linear-time algorithm). Towards this, we identify a sub-class of regular languages, called pattern languages (and their extension generalized pattern languages ). Pattern languages can naturally express specific ordering of some number of (labelled) events, and have been inspired by popular empirical hypotheses underlying many concurrency bug detection approaches such as the “small bug depth” hypothesis. More importantly, we show that for pattern (and generalized pattern) languages, the predictive monitoring problem can be solved using a constant-space streaming linear-time algorithm. We implement and evaluate our algorithm PatternTrack on benchmarks from the literature and show that it is effective in monitoring large-scale applications.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@article{paperbot2661,
  title = {Predictive Monitoring against Pattern Regular Languages},
  author = {Zhendong Ang and Umang Mathur},
  journal = {Proceedings of the ACM on Programming Languages},
  volume = {8},
  number = {POPL},
  year = {2024},
  doi = {10.1145/3632915}
}