Integrating a set of contract checking tools into Visual Studio
Integrating a set of contract checking tools into Visual Studio
复制标题
将一组合同检查工具集成到 Visual Studio 中
DOI:
10.1109/topi.2012.6229809
复制
发表时间:
2012
期刊:
影响因子:
--
通讯作者:
F. Logozzo
中科院分区:
文献类型:
--
作者:
M. Fähndrich;Mike Barnett;Daan Leijen;F. Logozzo
Integrating tools and extensions into existing languages, compilers, debuggers, and IDEs can be difficult, work-intensive, and often results in a one-off integration. In this paper, we report on our experience of building and integrating the CodeContract tool set into an existing programming environment. The CodeContract tools enable 1) authoring of contracts (preconditions, postconditions, and object invariants), 2) instrumenting contract checks into code, 3) statically checking code against contracts, and 4) visualizing contracts and results. We identify three characteristics of our integration that allowed us to reuse existing compilers and IDEs, increase the reach of our tools to multiple languages and target platforms, and maintain the tools over three consecutive versions of C# and Visual Studio with little effort. These principles are 1) use source embedding for new language features, 2) use target analysis and rewriting, and 3) use generic plug-ins to isolate tools from the IDE.