1. A computer-implemented method for characterizing artificiality in object code, the method comprising: receiving source code of a program; receiving one or more pieces of object code of the program; identifying a construct in the object code; determining if the construct is physically present in the source code; determining if the construct is logically present in the source code, wherein a construct is logically present if the constuct is required by the programming language; setting a construct flag to indicate that the construct is “synthesized” if the construct is not physically present but logically present in the source code; setting the construct flag to indicate that the construct is “synthetic” if the construct is not physically present and not logically present in the source code; setting the construct flag to indicate that the construct is “natural” if the construct is physically present and logically present in the source code; setting the construct flag to indicate that the construct is “commentary” if the construct is physically present but not logically present in the source code; and making the construct flag available to a reflective application programming interface.