3. The method of claim 1 , further comprising automatically encoding each of the plurality of modules of program code into code constraints using symbolic analysis of at least a portion of semantics within the module of program code, wherein using symbolic analysis includes characterizing one or more behaviors of the module of program code that would be exhibited by the module when the module is executed.
1. A computer implemented method of providing search results, the method comprising: receiving a first specification that comprises an input-output pair including a first data entity and a second data entity; for each module of program code of a plurality of modules of program code, supplying to a constraint solver one or more input-output constraints based on the input-output pair of the first specification and one or more code constraints based on the module of program code; receiving from the constraint solver, for each module of program code, a result indicating whether the code constraints based on the module of program code are satisfiable with the input-output constraints; and generating search results referencing one or more modules of program code having a positive result from the constraint solver and providing the search results to a user.