A low level language is something like Assembler. This works directly with the hardware and is generally hardware specific. C abstracts many hardware-specific elements and is portable, but does not distance itself from the hardware as higher level languages like SQL and COBOL do.