Assemblies are made up of IL code modules and the metadata that explains them. Although programs may be compiled by an IDE or the command line, in fact, they are easily translated into IL, not machine code. The real machine code is not produced until the function that needs it is called.