In article <3j5afc$sp2@infa.central.susx.ac.uk>,
Richard Matthias <richardm@cogs.susx.ac.uk> wrote:
>Is there a name for languages like pop11 and SML that require a runtime
>system to execute their programs. I am referring to the heap management etc.
>This is as opposed to languages like C and Pascal that translate directly into
>machine language.
>
>Essential the question is: What is the opposite of a "systems programming
>language" ?
Pop-11 and SML probably come under something like "Very High Level Language".
Distinctions of this sort are notoriously difficult to draw. Let's take the
two points you mentioned --- compiling to machine code and having a "runtime
environment".
Both Poplog Pop-11 (and most MLs that I am aware of) compile to native machine
code --- they are *not* interpreted. This seems to be a common misconception.
There are also versions of C and Pascal that are interpreted! Unix shell
scripts and Perl (usually used for "systems" programming) are interpreted.
Runtime environments? Unfortunately these are also rather difficult to define.
Let's just look at the issue you raised --- heap management. What is the
difference between Pop-11 using a garbage collector and C using malloc et al?
Not a lot really [1]. Both are necessary for any useful program in either
language. Both are used at runtime.
In some respects the distinction between "systems" and "non-systems"
programming languages is a historical one. Languages such as LISP and Pop-11
used to be far to inefficient in time and space to be used for system tasks.
Now, with faster machines, cheaper memory, and improved compiler technology
this is less true.
Oh, I should also mention that ancestors of Pop were used as "systems
programming languages". If fact I think I am correct in saying that Multipop
was one of the first multi-user time sharing environments in the world!
Probably the only answer to the question 'What is the opposite of a "systems
programming language?' that you will get everybody to agree on is "Something
that is not used for programming systems" or perhaps a more honest definition
would be "Something that we don't use for systems programming because we've
always used language X instead".
Adrian
[1] Well, apart from the fact that one encourages safe, modular programs and
the other doesn't --- but that's a different religious issue :-)
aids (adrianh@cogs.susx.ac.uk) ObDisclamer: Poplog used to pay my wages
Phone: +44 (0)1273 678367 URL: http://www.cogs.susx.ac.uk/users/adrianh/
|