Understanding compiler jargon
In this section, you will learn about terms that are commonly used in compilers. With this knowledge, you will be able to comfortably approach discussions around compilers.
Target
In compilers, a target is the hardware architecture that a program will run on. You will see that we use this term as a verb too when talking about implementing/specializing features for a particular target. For instance, the targeting of instruction selection means that we will modify the instruction selection transformation so that it supports a specific target.
Host
A host is the device that runs the compiler. In a lot of cases, the host and target are the same, but when they are different, we talk about cross-compilation. For example, you can run a compiler that produces code for an AArch64 target (for instance, used in a phone) on an x86 host (a desktop device).
Lowering
When working on and reading about compilers, you will encounter the term lowering...