Low-level programming language

Low-level programming language

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" 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."

A low level language is one that does not need a compiler or interpreter to run. The processor for which the language was written would be able to run the code without the use of either of these.

By comparison, a high-level programming language isolates the execution semantics of a computer architecture from the specification of the program, making the process of developing a program simpler and more understandable.

Low-level programming languages are sometimes divided into two categories: "first generation", and "second generation".

First 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,Fact|date=July 2008 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. Example: A function in 32-bit x86 machine code to calculate the nth Fibonacci number:

8B542408 83FA0077 06B80000 0000C383FA027706 B8010000 00C353BB 01000000B9010000 008D0419 83FA0376 078BD98BC84AEBF1 5BC3

econd 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"). 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.

Example: The same Fibonacci number calculator as above, but in MASM assembly language:

fib: mov edx, [esp+8+1] cmp edx, 0 ja @f mov eax, 0 ret @@: cmp edx, 2 ja @f mov eax, 1 ret @@: push ebx mov ebx, 1 mov ecx, 1 @@: lea eax, [ebx+ecx] cmp edx, 3 jbe @f mov ebx, ecx mov ecx, eax dec edx jmp @b @@: pop ebx ret

ee also

* High-level programming languages
* Very high-level programming languages
* Categorical list of programming languages

Wikimedia Foundation. 2010.

Look at other dictionaries:

  • low level programming language — žemo lygio programavimo kalba statusas T sritis informatika apibrėžtis ↑Programavimo kalba, priklausoma nuo kompiuterio arba operacinės sistemos architektūros. Ja rašomos sisteminės programos, turinčios tiesioginį ryšį su aparatine įranga. Šiai… …   Enciklopedinis kompiuterijos žodynas

  • low level programming language — fundamental programming language which is close to machine language …   English contemporary dictionary

  • High-level programming language — In computing, a high level programming language is a programming language with strong abstraction from the details of the computer. In comparison to low level programming languages, it may use natural language elements, be easier to use, or more… …   Wikipedia

  • Very high-level programming language — A very high level programming language (VHLL) is a programming language with a very high level of abstraction, used primarily as a professional programmer productivity tool.Very high level programming languages are usually limited to a very… …   Wikipedia

  • Programming language — lists Alphabetical Categorical Chronological Generational A programming language is an artificial language designed to communicate instructions to a machine, particularly a computer. Programming languages can be used to create programs that… …   Wikipedia

  • programming language — Language Lan guage, n. [OE. langage, F. langage, fr. L. lingua the tongue, hence speech, language; akin to E. tongue. See {Tongue}, cf. {Lingual}.] [1913 Webster] 1. Any means of conveying or communicating ideas; specifically, human speech; the… …   The Collaborative International Dictionary of English

  • low-level language — noun A computer programming language using easily remembered words or letters, each instruction translating into one machine code instruction (cf ↑high level language) • • • Main Entry: ↑low …   Useful english dictionary

  • low-level language — programming language that is close to machine language, programming language that does not use English like commands …   English contemporary dictionary

  • low-level — ► ADJECTIVE 1) of relatively little importance. 2) Computing denoting a programming language that is close to machine code in form …   English terms dictionary

  • programming language — a high level language used to write computer programs, as COBOL or BASIC, or, sometimes, an assembly language. [1955 60] * * * Language in which a computer programmer writes instructions for a computer to execute. Some languages, such as COBOL,… …   Universalium