High-level Programming Language - Abstraction Penalty

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:

    There’s no such thing as socialism pure
    Except as an abstraction of the mind.
    There’s only democratic socialism,
    Monarchic socialism, oligarchic
    The last being what they seem to have in Russia.
    Robert Frost (1874–1963)

    [I support] term limits for career politicians and the death penalty for career politicians.
    William Frist (b. 1952)