In
computer science, a
low-level programming language is a
programming language that provides little or no
abstraction from a computer's
instruction set architecture—commands or functions in the language map closely to processor instructions. Generally this refers to either
machine code or
assembly language. The word "low" refers to the small or nonexistent amount of
abstraction between the language and machine language; because of this, low-level languages are sometimes described as being "close to the hardware." Because of the close relationship between the language and the hardware architecture programs written in low-level languages tend to be relatively
non-portable.