[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Language Implementation Languages



At 2:16 PM -0700 5/16/03, Brent Fulgham wrote:
>  >     Is anyone using anything other than C and its heirs for
>>  their low level language implemenation work?
>>    
>>      It seems all to easy to introduce bugs in one's
>>  implmentation when using something as unsafe as C.
>>
>
>That's a very common first-goal with languages.  I can think
>of several off the top of my head:
>
>Gwydion Dylan (http://www.gwydiondylan.org) uses Dylan to code
>	the compiler, bootstrapping from a small subset of Dylan
>	written in C.
>
>NHC98 (http://www.haskell.org/nhc98) is written in Haskell, though
>	it emits C as its "output", which is then compiled to native code.
>
>Clean (http://www.cs.kun.nl/~clean) is now written mostly in Clean.
>

Genera, the operating system for the Symbolics Lisp
Machine, was written entirely in Lisp.  It has to be
said that the low-level parts of the garbage collector
used these things called "locatives" (pointers), but
it's hard to see how to do otherwise.  The primitive
function-call, -return, and stack-unwinding code had
a few dozen lines of assembly code.  And the device
drivers obviously used locatives to bang on the device
registers.  But other than those few hundred lines of
low-level code, everything else was Lisp, including
interrupts handlers, the paging system, the scheduler,
etc, etc.

Minima, a stripped-down successor to Genera, was even
more Lisp-y, and even use CLOS-style O-O at a very low
level.  It was meant to be a real-time operating system,
and for meaningful definitions of "real-time", it was
a success.