While high-level languages are intended to make complex programming simpler, low-level languages often produce more efficient code. Abstraction penalty is the barrier that prevents high-level programming techniques from being applied in situations where computational resources are limited. High-level programming exhibits features like more generic data structures, run-time interpretation, and intermediate code files; which often result in slower execution speed, higher memory consumption, and larger binary program size. For this reason, code which needs to run particularly quickly and efficiently may require the use of a lower-level language, even if a higher-level language would make the coding easier. In many cases, critical portions of a program mostly in a high-level language can be hand-coded in assembly language, leading to a much faster or more efficient optimised program.
However, with the growing complexity of modern microprocessor architectures, well-designed compilers for high-level languages frequently produce code comparable in efficiency to what most low-level programmers can produce by hand, and the higher abstraction may allow for more powerful techniques providing better overall results than their low-level counterparts in particular settings. High-level languages are designed independent of structure of a specific computer. This facilitates executing a program written in such a language on different computers.
Read more about this topic: High-level Programming Language
Famous quotes containing the words abstraction and/or penalty:
“New York ... is a city of geometric heights, a petrified desert of grids and lattices, an inferno of greenish abstraction under a flat sky, a real Metropolis from which man is absent by his very accumulation.”
—Roland Barthes (1915–1980)
“Wilful sterility is, from the standpoint of the nation, from the standpoint of the human race, the one sin for which the penalty is national death, race death; a sin for which there is no atonement.... No man, no woman, can shirk the primary duties of life, whether for love of ease and pleasure, or for any other cause, and retain his or her self-respect.”
—Theodore Roosevelt (1858–1919)