System programming subsets of Lisp, Smalltalk, Python et. al
Posted: Sat Jan 03, 2004 5:37 pm
I have been giving quite a bit of thought into the question of how one would use a very-high-level language such as Scheme or Smalltalk could be used effectively for OS development. Assuming one didn't want to use C or assembly to implement an interpreter-kernel (the classic approach used in Smalltalk-80, the UCSD p System, and JavaOS) , the alternative is to develop a compiled subset of the language that avoids the high-level constructs such as garbage collection, dynamic message-passing, or continuations. Other questions remain, however:
- Is it feasible to do this?
- Would doing so lose the desired qualities of the language?
- Could a FORTH style threaded interpreter be used in place of a compiler?
- Would efficiency issues that would make this unworkable?
- Could the subset be dynamically extended to support the full language after the kernel is in place, by means of libraries, system calls, etc., or would their have to be two separate implementations, a subset for kernel-level work and a full version for the rest?