Low-level programming language
From Wikipedia, the free encyclopedia
| This article does not cite any references or sources. (December 2006) Please help improve this article by adding citations to reliable sources. Unverifiable material may be challenged and removed. |
In computer science, a low-level programming language is a language that provides little or no abstraction from a computer's microprocessor. The word "low" does not imply that the language is inferior to high-level programming languages but rather 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."
"High-level" and "low-level" are also used relatively; a Java programmer might consider C to be a comparatively low-level language. Whereas a C programmer might consider machine code to be of a lower level.
Low-level programming languages are sometimes divided into two categories: first generation, and second generation.
The first-generation programming language, or 1GL, is machine code. It is the only language a microprocessor can understand directly. Currently, programmers almost never write programs directly in machine code, because not only does it (like assembly language) require attention to numerous details which a high-level language would handle automatically, but it also requires memorizing or looking up numerical codes for every instruction that is used. For this reason, second generation programming languages abstract the machine code one level.
The second-generation programming language, or 2GL, is assembly language. It is considered a second-generation language because while it is not a microprocessor's native language, an assembly language programmer must still understand the microprocessor's unique architecture (such as its registers and instructions). These simple instructions are then compiled directly into machine code. The assembly code can also be abstracted to another layer in a similar manner as machine code is abstracted into assembly code. An example in assembly language would be written as something more readable like
"ADD CX INTEREST"