next up previous
Next: 9 Conclusion Up: CLANGER : an interpreted Previous: 7 Examples

8 Related Work

CLANGER is, we believe, unique. We do not know of any interpreted language which lives sufficiently low in the system to be able to do anything that can be done in C and still be usable as a general command line interpreter.

Plan 9 [6] allows similar interaction with anything in the machine that implements a filing system. However, it requires that all interfaces in the system are untyped and use a command language. By contrast in CLANGER typed interfaces are down at the linkage level and the command language can use all interfaces. Nemesis interfaces can be (and usually are) much more fine-grained than Plan 9's filing systems.

Software development environments often implement similar functionality: XDE [14], Cedar [10], SmallTalk [2] and Oberon [13] are all examples. However, they tend to be quite specialised. None provide both the power to interactively invoke any system interface together with the tight integration with a true general-purpose operating system supporting many programming languages.

General-purpose scripting languages such as Python [11], Perl [12] and Tcl [5] can only be extended by writing compiled code as a wrapper around some operating system functionality. Furthermore, they are geared towards usage in an environment with poor definition of interfaces and almost no modularity (though this is less true of Python). For our requirements, namely a command line interpreter for a new operating system very different from Unix, implementing CLANGER\ is much less work than porting one of these languages.

T. Roscoe