On 16/10/2010 19:27, Paulo Pinto wrote:
Would that make Smalltalk, Lisp, Oberon, Modula-3, Component Pascal, Ada,
Mac Pascal system programming languages?
All of them were used to write operating systems, in some of them the
operating system and
language are the same, kind of.
Well true, but the main problem with a lot of those systems is that you
can only program on them in that language; they are all special
execptions rather than general computers.
They used to make h/w Lisp machines back in the late 70s, where all the
OS was written in Lisp; but you could only program them in Lisp. I
wonder how they did the garbage collector as Lisp doesn't have pointers?
I guess they either wrote the garbage collector entierly in assembly or
added a bunch of Lisp functions to allow them to manipulate the address
space, effectively added pointers to the language.
For C, in principle you only need a trivial amount of assembly to handle
the processor specific calls to switch privilege levels and load
process/thread state.
For something like Java/Python you'd need a huge amount of assembly if
you wanted to avoid using another lower level language.
There's nothing special about a systems language; it's just they have
explicit facilities that make certain low level functionality easier to
implement. You could implement an OS in BASIC using PEEK/POKE if you mad
enough.
--
My enormous talent is exceeded only by my outrageous laziness.
http://www.ssTk.co.uk