A low-level language is the opposite of a
HighLevelLanguage. It is one which exposes a significant amount of the computer's inner workings; for instance, in
CeeLanguage, one deals with the concept of memory and pointers, whereas in
HaskellLanguage, there is no concept of storing data. This aspect of
CeeLanguage is low-level.The lowest-level languages are
AssemblyLanguage and
MachineLanguage, which hides no details of the machine; not even the bit patterns used to form instructions are abstracted.
Low-level languages have the advantage that the programmer is able to tune the code to be smaller or more efficient, and that more system-dependent features are sometimes available. They have the disadvantage that they are often (usually?) harder to program with than
HighLevelLanguages.