# ways to run code Broadly, this covers the various ways a programming language can go from plaintext to being executed. ## [[Compilation]] Source code can be converted to machine code directly. This is done using a compiler. ### AOT Ahead-of-time compilation converts the source code into a lower-level language before executing it. For example, some languages compile to [[C]] and then compile to machine code. ### JIT [[JIT compilation]] involves compiling source code at runtime. JIT compilation is something of a mix of compilation and interpretation. ## Interpretation Source code can be executed directly. This is done by interpretation.