rather than dealing with functions of computer hardware, high-level programming languages deal with more abstract concepts. high-level programming languages focus more on what the program will output. an interpreter is required to translate high-level programming language for low-level programming languages to tell the hardware what to do.