PICT (Programmer Intent Capture Tool)

PICT, a tool for interactively capturing and managing programmers' intentions, will produce tools that enable more robust software and make the software development process more efficient.

Programmers make assumptions and design decisions while they’re coding that are often forgotten and lost, ultimately impacting the maintainability, robustness, and security of a program. The goal of this Small Business Innovative Research (SBIR) project funded by the Office of Naval Research is to develop techniques and methods for enhancing software robustness and security during development by enhancing software developers’ understanding and awareness of their works, via automated capture and documentation of design decision.

We developed PICT (Programmer Intent Capture Tool) to enable programmers to capture code properties that can express a wide range of intentions, from low-level code assertions to high-level design decisions. PICT analyzes and displays these properties continuously during software development.

The PICT tool:

  • Allows the programmer to specify design decisions, intentions, coding standards, etc in a high level Domain Specific Language (DSL).
  • Checks that code conforms to these ‘intentions’ and displays real-time feedback of all discrepancies.
  • Provides a unified DSL interface to many kinds of program analysis “back ends” (LLVM, lint, etc.).
  • Allows the programmer to combine results from multiple back ends in arbitrary ways.