[1467] in java-interest
Systems Programming Oriented Java
daemon@ATHENA.MIT.EDU (John D. Ramsdell)
Tue Sep 5 09:43:26 1995
To: java-interest@java.sun.com
Cc: ramsdell@linus.mitre.org
In-reply-to: Your message of "Sat, 02 Sep 1995 21:51:40 EDT."
<199509030151.VAA07894@linus.mitre.org>
Date: Tue, 05 Sep 1995 06:30:19 -0400
From: "John D. Ramsdell" <ramsdell@linus.mitre.org>
[My previous message on this subject called the proposed systems
programming language Iced Java, but that name is being used by the
ISIS project for a 3D modeling class in Java. I've changed the name
to J.]
I propose the creation of a new dialect of Java, called J, intended
for systems programming. J 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 J programs that can
be run and debugged as if they are ordinary Java programs.
J would be suitable for systems programming because J programs should
require nothing more than a C-like runtime system. In particular, J
programs should be runnable without the use of automatic storage
reclamation, and they may explicitly free objects. Unlike Java, J
would not be a safe language, as it may provide primitives that
perform actions such as pointer arithmetic.
J 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 J compiler. Maybe the J 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.
See also <url:http://www-swiss.ai.mit.edu/~jar/s48.html>.
Next time you write a complicated program that must use a C-like
runtime system, think how nice it would be to develop that program in
a Java environment. Debugging will be much easier, especially when
Java debuggers come on line. All pointer references will be checked,
so that by the time a C-like runtime system is used, the nastiest
problems will be solved.
It works. I've been there.
John
Note to members of the Internet: this is an INTERNAL mailing list!
-
Note to Sun employees: this is an EXTERNAL mailing list!
Info: send 'help' to java-interest-request@java.sun.com