The use of bad names — names that are wrong, inconsistent or inconcise — hinder program comprehension. The root of the problem is that there is no mechanism for aligning the n...
—In the multicore era, a major programming task will be to make programs more parallel. This is tedious because it requires changing many lines of code, and it is error-prone and...
Program analysis and verification tools crucially depend on the ability to symbolically describe and reason about sets of program behaviors. Separation logic provides a promising...
Concurrent ML (CML) is a statically-typed higher-order concurrent language that is embedded in Standard ML. Its most notable feature is its support for first-class synchronous ope...
Impact analysis is the process of determining the effect, or impact, of a change to a software system. Dynamic impact analysis uses data obtained from executing a program to perfo...