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

systems programming Clang


I've been thinking about the Clang after Thales Clang, for systems
programming.  I'm considering calling it Aristotle Clang, allowing a
twin language for applications (applitudes?) programming as Plato Clang,
but I'm open to suggestions.

The language will be a candidate for developing the bootstrapped client.

A list of design criteria for the language: instead of targetting a VM
inside the ZZ structure like Thales Clang, it will target bare metal
(ie. the various machine languages); it will allow writing portable
systems programs in the style of C; it will allow machine-dependent
low-level bit fiddling (for OS kernel development); it will have
conservatively designed abstraction mechanisms for developing big
programs; it will be biased for hand-writing programs but will avoid
constructs that make automatic generation hard; it will include effectivce
and efficient FFI.

A design problem: Tuomas would like that the initial compiler targetted C,
but I don't think that's a viable choice, since we need a way to allow
efficient garbage collection for some programs written in this language,
and C as the target language effectively prevents that.  Personally I'd
target GNU/IA32 first, since it is widely used, and Win32/IA32 as the
first port, for the same reason.  Then would probably come ARM or whatever
the handhelds use, since we're targetting those anyway.


%%% Antti-Juhani Kaijanaho % gaia@xxxxxx % http://www.iki.fi/gaia/ %%%