Low-level programming language
From Wikipedia, the free encyclopedia
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.
Low-level programming languages are sometimes divided into two categories: first generation, and second generation.
Contents |
[edit] First generation
The first-generation programming language, or 1GL, is machine code. It is the only language a microprocessor can understand natively. 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, which in assembly language would be written as something more readable like "ADD CX INTEREST" or "RET".
[edit] Second generation
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).
[edit] Quotes
- A programming language is low level when its programs require attention to the irrelevant.
- — Humorous epigram from Epigrams on Programming by Alan Perlis.
[edit] See also
- High-level programming languages
- Medium-level programming languages
- Very high-level programming languages
- Categorical list of programming languages