Do understand how to optimize Julia code, it is useful to know how Julia compiles to machine code. We'll look at the different steps involved. - Turning high level Julia code to a simpler code through a process called lowering. - The Abstract Syntax Tree representing parsed Julia code. - Create a sort of abstract and typed assembly code called LLVMbitcode, before creating the final machine specific assembly.