definition of a highlevel language?

Avowkind Avowkind at gmail.com
Tue May 27 18:04:18 EDT 2008


On May 27, 6:34 am, notnorweg... at yahoo.se wrote:
> (might not be the right forum for this but...)
>
> what is the definition of a highlevel-language?
>
> well there isnt one specifically and wikipedia and the like gives just
> a very general description obv you can say it abstracts away lowlever
> operations.
>
> yes but how?
>
> a function like map takes a function and applies it to a list for
> example.
> this abstracts away a common procedure like iterate through a list and
> for every position do a computation.
> so it is a higherorderfunction. is this how higher-level-languages are
> built?
>
> so are they fundamentally differently built or is it just a lot of
> lowlevel operations built on top of each other?
>
> haskell is considered a very highlevellanguage but can you do
> systemsprogramming with it(yes maybe it is very unpractical i dont
> know but can you)?
>
> is lambda calculus a more abstract and efficient way of modeling a
> computer? meaning you start at a higher level of abstraction and can
> work up to even higher even faster?
>
> how did lispmachines work? was the basic system programmed in LISP?


A lot of the previous comments have been about levels of abstraction
of the programming langauge - which may be the answer you want.
Another way of looking at it is that we want to be able to move from
the language of the solution domain - e.g. computers, bits and bytes
to the language of the problem domain.

When we think about 'level' we don't just want to look at how basic
statements work. we also need to think about whether the language is
capable of simply and clearly expressing the problem.

If your problem domain is mathematics then mathcad and its ilk are
near perfect high level programming languages as the programs look
just like the problems.

if your problem domain is controlling a water works then you may tend
to write your problem like this:

if the water level is over 10 metres then start pump
if the water level is below 5 metres then stop pump

which in python might turn out to be

if water_level > 10:
    pump.start()
if water_level < 5:
    pump.stop()

which is fairly close.
of course with the addition of some brackets C++ could be this clear
too. The key though is the abstraction given by the pump class and
implicitly by object oriented design.


In this pattern Form designers, visual web page layout tools and their
ilk are very high level - but only if your problem is that you need to
design a lot of business forms or web pages.  Some problems are best
described visually, some in text, some in mathematics.

Andrew.



More information about the Python-list mailing list