Low-level programming language
Low-level programming languages are often tied to a particular CPU or instruction set. For example, a program written in ARM assembly language cannot run on an x86 processor without emulation.