Rather than focus on what the program will output regardless of computer hardware, low-level programming languages deal directly at the computer hardware. Low-level programming languages will aim at what the hardware will actually do to make the actions that have been programmed. An interpreter is required to translate high-level programming language for low-level programming languages to tell the hardware what to do.