We present an approach for checking that Java programs correctly use libraries such as java.util.concurrent.locks for synchronizing concurrent tasks. Concretely, the article develops methods to check that the behaviour of a program is in accordance with a set of coding rules that govern the correct usage of the library. Here such coding rules are formalized as Prolog predicates that judge whether the history of interactions between program and library represents correct usage or not. The history of interactions is obtained by tracing the interactions between the program and the library when executing a representative test suite. The approach is evaluated in a case study in which around 200 independent monitor-based Java implementations of a common specification are analysed to check adherence to the concurrency coding rules.

错误:搜索内容不能为空,请输入英文关键词
错误:关键词超出字数限制,请精简
高级检索

Checking Concurrency Coding Rules

  • Lars-Åke Fredlund,
  • Ángel Herranz,
  • Julio Mariño

摘要

We present an approach for checking that Java programs correctly use libraries such as java.util.concurrent.locks for synchronizing concurrent tasks. Concretely, the article develops methods to check that the behaviour of a program is in accordance with a set of coding rules that govern the correct usage of the library. Here such coding rules are formalized as Prolog predicates that judge whether the history of interactions between program and library represents correct usage or not. The history of interactions is obtained by tracing the interactions between the program and the library when executing a representative test suite. The approach is evaluated in a case study in which around 200 independent monitor-based Java implementations of a common specification are analysed to check adherence to the concurrency coding rules.