CPUs are made up of components called registers. CPUs have instruction sets that define a bunch of boolean logic behaviors that the CPU will execute. Register values are series 0s and 1s, off and on respectively, and loading certain registers with certain values yields different results. This whole concept forms the basics of programs - they're just sequences of instructions to be executed by the processor. Compilers are just programs that translate higher level languages into byte code and machine code. The machine code is literally represented in 0s and 1s. If you cared enough, you could write a program entirely in machine code, but it wouldn't be worth the trouble. The closest to that you'll see is assembler (ARM, MIPS, etc) that is more human readable but extremely low level in that you define each operation yourself. In a higher level language like Java, C, Python, that's all abstracted away from you.