Project

ProcedureSpace: Managing Informality by Example

Computers usually require us to be precise about what we want them to do and how we want them to do it, but humans find it hard to be so formal. If we were to give computers formal examples of our informal instructions, maybe they could learn to relate the natural instructions of ordinary users with the specifications, code, and tests with which they are comfortable. Zones and ProcedureSpace are examples of this. Zones is a code search interface that connects code with comments about its purpose. Completed searches become annotations, so the system learns by example. The backend, ProcedureSpace, finds code for a purpose comment (or vice versa) by relating words and phrases to code characteristics and natural language background knowledge. Users of the system are able to describe what they want in their own words, and often find that the system gives them helpful code.

Computers usually require us to be precise about what we want them to do and how we want them to do it, but humans find it hard to be so formal. If we were to give computers formal examples of our informal instructions, maybe they could learn to relate the natural instructions of ordinary users with the specifications, code, and tests with which they are comfortable. Zones and ProcedureSpace are examples of this. Zones is a code search interface that connects code with comments about its purpose. Completed searches become annotations, so the system learns by example. The backend, ProcedureSpace, finds code for a purpose comment (or vice versa) by relating words and phrases to code characteristics and natural language background knowledge. Users of the system are able to describe what they want in their own words, and often find that the system gives them helpful code.