1. A computer-implemented method of determining which files of a plurality of executable files are compilers for a target programming language, the method comprising: intercepting respective requests to create a plurality of newly created processes, each request to create a newly created process being a request to execute a respective executable file of a plurality of executable files in the newly created process; providing, as input to each executable file of the plurality of executable files, a source code file having one or more valid statements in a target programming language, wherein the one or more valid statements correspond to a sequence of bytes such that when the one or more valid statements are compiled by a compiler for the target programming language, the compiler generates an output file having the sequence of bytes, wherein the one or more valid statements include a plurality of escape sequences that each encode a portion of the sequence of bytes; determining, for each executable file of the plurality of executable files, whether the contents of any output file generated by the executable file includes the sequence of bytes corresponding to the one or more valid statements in the target programming language; and classifying only executable files that generated an output file whose contents include the sequence of bytes as being compilers for the target programming language.