1. A computer program product comprising one or more computer-readable media having thereon a contract application programming interface (API) written in a first programming language for augmenting an application API written in a second programming language, the application API including one or more contracts, the computer program product comprising computer-executable instructions that, when executed by one or more processors of the computing system, cause the computing system to perform a method, the method comprising: an act of receiving software code written in the second programming language indicating the user's intention to augment the application API with contracts from the contract API written in the first programming language, the software code including a reference to the contract API, the contracts including one or more assertions indicating appropriate use of the application API; an act of accessing portions of the contract API according to the reference in the software code; and an act of compiling the received software code and the referenced portions of the contract API into an intermediate language version of the received software code, the intermediate language version being in an intermediate language common to both the first programming language and the second programming language, the intermediate language version including one or more assertions indicating appropriate use of the application API.