Low-level programming language: Difference between revisions

Content deleted Content added
just cleaned it up
No edit summary
Line 6:
}}
 
A "low-level programming" language is a [[programming language]] that provides little or no [[Abstraction (computer science)|abstraction]] from a computer's [[instruction set architecture]]—commands or functions in the language map that are structurally similar to processor's instructions. Generally, this refers to either [[machine code]] or [[assembly language]]. Because of the low (hence the word) abstraction between the language and machine language, low-level languages are sometimes described as being "close to the hardware". Programs written in low-level languages tend to be relatively [[Software portability|non-portable]], due to being optimized for a certain type of system architecture.
 
Low-level languages can convert to machine code without a [[compiler]] or [[Interpreter (computing)|interpreter]] – [[second-generation programming language]]s use a simpler processor called an [[Assembly language#Assemble|assembler]] – and the resulting code runs directly on the processor. A program written in a low-level language can be made to run very quickly, with a small [[memory footprint]]. An equivalent program in a [[high-level language]] can be less efficient and use more memory. Low-level languages are simple, but considered difficult to use, due to numerous technical details that the programmer must remember. By comparison, a [[high-level programming language]] isolates execution semantics of a computer architecture from the specification of the program, which simplifies development.
Line 78:
 
==Low-level programming in high-level languages==
InDuring the late 1960s, [[High-level programming language|high-level languages]] such as [[IBM PL/S|PL/S]], [[BLISS]], [[BCPL]], extended [[ALGOL]] (for [[Burroughs large systems]]) and [[C (programming language)|C]] included some degree of access to low-level programming functions. One method for this is [[Inline assembly]], in which assembly code is embedded in a high-level language that supports this feature. Some of these languages also allow architecture-dependent [[Optimizing compiler|compiler optimization directives]] to adjust the way a compiler uses the target processor architecture.
 
==References==