Вы находитесь на странице: 1из 6

high-level language (plural high-level languages)

1. (programming): A programming language, requiring a compiler to translate into a


form a particular machine understands, focusing on user-friendly code
development by automating core tasks such as accessing memory.
low-level language (plural low-level languages)
1. (programming) A computer language ho!s source code is a somehat user-
friendly version of a particular computer architecture!s assembly language,
containing no provisions for portability beteen architectures.
high-level language
Last modified: Saturday, October 26, 1996
A programming language such as ", #$%&%A', or (ascal that enables a programmer to rite
programs that are more or less independent of a particular type of computer. )uch languages are
considered high-level because they are closer to human languages and further from machine
languages. *n contrast, assembly languages are considered lo-level because they are very close to
machine languages.
&he main advantage of high-level languages over lo-level languages is that they are easier to read,
rite, and maintain. +ltimately, programs ritten in a high-level language must be translated into
machine language by a compiler or interpreter.
&he first high-level programming languages ere designed in the 1,-.s. 'o there are do/ens of
different languages, including Ada, Algol, 0A)*", "$0$1, ", "22, #$%&%A', 1*)(, (ascal, and
(rolog.
High-level programming language
#rom 3ikipedia, the free encyclopedia
*n computing, a high-level programming language is a programming language ith
strong abstraction from the details of the computer. *n comparison to lo-level
programming languages, it may use natural language elements, be easier to use, or be
more portable across platforms. )uch languages hide the details of "(+ operations such
as memory access models and management of scope.
&his greater abstraction and hiding of details is generally intended to make the language
user-friendly, as it includes concepts from the problem domain instead of those of the
machine used. A high-level language isolates the e4ecution semantics of a computer
architecture from the specification of the program, making the process of developing a
program simpler and more understandable ith respect to a lo-level language. &he
amount of abstraction provided defines ho 5high-level5 a programming language is.
617
&he first high-level programming language to be designed for a computer as
(lankalk8l, created by 9onrad :use. ;oever, it as not implemented in his time and his
original contributions ere isolated from other developments.
[edit] Features
&he term 5high-level language5 does not imply that the language is superior to lo-level
programming languages - in fact, in terms of the depth of knoledge of ho computers
ork required to productively program in a given language, the inverse may be true.
%ather, 5high-level language5 refers to the higher level of abstraction from machine
language. %ather than dealing ith registers, memory addresses and call stacks, high-
level languages deal ith usability, threads, locks, ob<ects, variables, arrays and comple4
arithmetic or boolean e4pressions. *n addition, they have no opcodes that can directly
compile the language into machine code, unlike lo-level assembly language. $ther
features such as string handling routines, ob<ect-oriented language features and file
input=output may also be present.
[edit] Abstraction penalty
)tereotypically, high-level languages make comple4 programming simpler, hile lo-
level languages tend to produce more efficient code. Abstraction penalty is the barrier
preventing applying high-level programming techniques in situations here
computational resources are limited. ;igh-level programming features like more generic
data structures, run-time interpretation and intermediate code files often result in sloer
e4ecution speed, higher memory consumption and larger binary si/e
6>76?76@7
. #or this
reason, code hich needs to run particularly quickly and efficiently may be ritten in a
loer-level language, even if a higher-level language ould make the coding easier.
;oever, ith the groing comple4ity of modern microprocessor architectures, ell-
designed compilers for high-level languages frequently produce code comparable in
efficiency to hat most lo-level programmers can produce by hand
6citation needed7
, and the
higher abstraction may allo for more poerful techniques providing better overall
results than their lo-level counterparts in particular settings.
6-7
[edit] Relative meaning
&he terms high-level and low-level are inherently relative. )ome decades ago, the "
language, and similar languages, as most often considered 5high-level5, as it supported
concepts such as e4pression evaluation, parameterised recursive functions, and data types
and structures, hile assembly language as considered 5lo-level5. Aany programmers
today might refer to " as lo-level, as it lacks a large runtime-system (no garbage
collection etc), basically supports only scalar operations, and provides direct memory
addressing. *t therefore readily blends ith assembly language and the machine level of
"(+s and microcontrollers.
Also note that assembly language may itself be regarded as a higher level (but often still
one-to-one if used ithout macros) representation of machine code, as it supports
concepts such as constants and (limited) e4pressions, sometimes even variables,
procedures, and data structures. Aachine code, in its turn, is inherently at a slightly
higher level than the microcode or micro-operations used internally in many processors.
)ee ">!s page about high-level languages.
[edit] Execution models
&here are three models of e4ecution for modern high-level languages:
*nterpreted
*nterpreted languages are read and then e4ecuted directly, ith no compilation
stage.
"ompiled
"ompiled languages are transformed into an e4ecutable form before running.
&here are to types of compilation:
*ntermediate representations
3hen a language is compiled to an intermediate representation, that
representation can be optimi/ed or saved for later e4ecution ithout the need to
re-read the source file. 3hen the intermediate representation is saved it is often
represented as bytecode.
Aachine code generation
)ome compilers compile source code directly into machine code. Birtual
machines that e4ecute bytecode directly or transform it further into machine code
have blurred the once clear distinction beteen intermediate representations and
truly compiled languages.
&ranslated
A language may be translated into a lo-level programming language for hich
native code compilers are already idely available. &he " programming language
is a common target for such translators.
Answer - why C is iddle !evel !anguage
" (rogramming language is called as Aiddle 1evel 1anguage because
(i) it gives or behaves as ;igh 1evel 1anguage through Functions - gives a modular
programming and breakup, increased efficiency for reusability
(ii)it gives access to the lo level memory through Pointers. Aoreover it does support
the 1o 1evel programming i.e, Assembly 1anguage.
As its a combination of these to aspects, its neither a High !evel nor a !ow level
language but a Middle Level Language.
"est Answer - Chosen by #oters
" is often called a middle-level computer language as it combines the elements of high-
level languages ith the functionalism of assembly language.
;igh 1evel language :
A high-level programming language is a programming language that is more user-
friendly, to some e4tent platform-independent, and abstract from lo-level computer
processor operations such as memory accesses.
1o 1evel 1anguage :
A lo-level programming language is a programming language that is more machine
specific, and from computer processor operations such as memory accesses is directly
dependent.
or in simple
i) it gives or behaves as ;igh 1evel 1anguage through #unctions - gives a modular
programming and breakup, increased efficiency for reusability
(ii)it gives access to the lo level memory through (ointers. Aoreover it does support the
1o 1evel programming i.e, Assembly 1anguage.
depends on the ay " is used . " can be used for as high level tasks like riting
ord processors and spreadsheet programs , and it!s still can be used for system
programming ( like riting operating systems ). " has high level languages
constructs , like advanced set of data types , and yet it allos programmers to
access the machine dependent functionality via pointers and system calls and the
like.
Cava , on the other hand,is a high level language , as such system level stuff is not
available directly .
1anguages are categori/ed into lo,middle and high based on the abstraction it
provides from the microprocessor.
for eg, hile programming in assembly language you have to take into
consideration the architecture of the microprocessor, registers length, etc..
Dou don!t need compiler or interpreter, for it directly run by microprocessor.
&he assembly language code( it is the >nd generation language) you rite on on
computer, may not be able to run on a compute ith a different microprocessor.
As far as high level language is concerned, it provides complete abstraction from
the microprocessor architecture, you don!t need to orry about the registers,
memory ord length, it ill all be taken care by the compiler. a program you
rite in high level language can be compiled and run on another computer
provided it has the compiler.
" language has a predefined datatype set hich you can use to define variables,
and use them as memory locations.
" program ritten on one machine can be compiled and e4ecuted on another
machine, and it has all the features of high level language as * have mentioned
above.
but you can also define register variables, hich stores data in the registers of the
microprocessors for fast retrieval,
and feature of pointers, addresses( most important feature) thereby a dependency
on the microprocessor architecture.
&hus it is referred to as middle level language.
" (rogramming language is called as Aiddle 1evel 1anguage because
(i) it gives or behaves as ;igh 1evel 1anguage through #unctions - gives a
modular programming and breakup, increased efficiency for reusability
(ii)it gives access to the lo level memory through (ointers. Aoreover it does
support the 1o 1evel programming i.e, Assembly 1anguage.
As its a combination of these to aspects, its neither a ;igh 1evel nor a 1o
level language but a Aiddle 1evel 1anguage.
because it is closer to machine lang and high level lang.*t directly converts high level
lang into machin lang.0ecause compiler is designed in c lang.&hats hy it is called
middle level lang.*t doest not require another interfaces to communicate ith the system.
;ope you have got my point.
" is often called a middle-level computer language as it combines the elements of
high-level languages ith the functionalism of assembly language(lo level
languages).

Вам также может понравиться