[1448] in java-interest

home help back first fref pref prev next nref lref last post

Iced Java for Systems Programming

daemon@ATHENA.MIT.EDU (John D. Ramsdell)
Sun Sep 3 00:52:33 1995

To: java-interest@java.sun.com
cc: ramsdell@linus.mitre.org
Date: Sat, 02 Sep 1995 21:51:40 -0400
From: "John D. Ramsdell" <ramsdell@linus.mitre.org>

I propose the creation of a new dialect of Java, called Iced Java,
intended for systems programming.  Iced Java should be carefully
designed so that it syntactically looks like Java and has similar
semantics.  With a little care, programmers should be able to write
Iced Java programs that can be run and debugged as if they are
ordinary Java programs.

Iced Java would be suitable for systems programming because Iced Java
programs should require nothing more than a C-like runtime system.  In
particular, Iced Java programs should be runnable without the use of
automatic storage reclamation, and they may explicitly free objects.
Unlike Java, Iced Java would not be a safe language, as it may provide
primitives that perform actions such as pointer arithmetic.

Iced Java could be used to implement a Java bytecode interpreter.
With a little foresight, one could write and debug most of the
interpreter as a Java program.  A few classes would need new
definitions before the interpreter is presented to an Iced Java
compiler.  Maybe the Iced Java compiler will generate C, C++, or
Objective C, which will then be translated into machine code.

Constructing systems programs via advanced languages leads to clear,
more easily maintained programs.  Richard Kelsey and Jonathan Rees,
used a language called PreScheme to implement a bytecode interpreter
for Scheme.  The clarity of the implementation is striking.  Their
implementation is described in an articled titled "A Tractable Scheme
Implementation" in Lisp and Symbolic Computation, 7(4)315-335, 1994.

John
-
Note to Sun employees: this is an EXTERNAL mailing list!
Info: send 'help' to java-interest-request@java.sun.com

home help back first fref pref prev next nref lref last post