JAVA

Your Browser doesn't support Java, or you have disabled Java

How do I start?

To run your first applet, using Netscape browser

How do I make my own applets?

You need to know about

You might also want to know about the Java mode for emacs:
java support is built in to the latest version of the C support cc-mode. All you have to do is switch to the latest version of emacs. This is currently installed as emacs19.31
If you are using the emacs (19.31) java support and want font-lock keywords for highlighting, just add (require 'java-f-lck) to your .emacs.
The easiest way to globally turn on font-lock support is to use something like

;; run font-lock on all files
;; *New with Emacs-19.31*  Turn on font-lock mode automatically
;; in all modes which support it.
(global-font-lock-mode t)
;; Enable the pretty colors
(setq font-lock-maximum-decoration t)

gdg writes: The Linux machines are currently running emacs19.30, which does not have sensible Java editing support. I have set up a mechanism to enable users to pick up the necessary code from a more recent emacs. To use this, just put the following in your .emacs
(load-file "/home/ta5/staff/graham/elisp/java-setup.el")

JAVAR is a prototype restructuring compiler that can be used to make implicit parallelism in Java programs explicit by means of multi-threading.


References (FAQs, applets etc.)

Lots of information about Java & Compilers etc. from Barry Cornelius

Java at Sun -> FAQs etc., including javasoft applets
java links
Java Notes
java book reviews
Java at Yahoo
Java FAQ
Java Tips
comp.lang.java Newbie FAQ
Java UK Experience

Local references

Nigel Whitaker's Java Page (can also be found via Local Software)
java-fanciers mailing list

John Sargeant's pages about local Java information [local] and Java the language.


Writing Compilers in Java

JLex = lex for use with Java (used to be called JavaLex and live here) now associated with
"Modern Compiler Implementation in Java" by Appel, which also has links to:
JavaCUP = Java based Constructor of Useful Parsers, an LALR parser generator for Java.

regular expression package in Java

JavaCC (docs) (FAQ) is the Java Compiler Compiler, an LL(k) parser/lexer generator, generating Java code (originally known as Jack). It comes with C++, C, Java, HTML, IDL, and a bunch of other grammars. It comes with JJTree, a parse tree generator.

ANTLR 2.0 supports Java (now moved to www.ANTLR.org)

A compiler written in Java, not using JLex nor JavaCup.

MUSKOX v4.0 annotates C++ & Java classes and interfaces with EBNF LR(K) grammars. It features grammar inheritance and redefinition of rules. It also supports multiple parsers, recording/replay of trace logs, and HTML pretty-printing. Default and user-defined lexer and error processing is available. In addition, the new version provides syntactic lookaheads, semantic predicates, and syntax trees.

Free yaccable java grammar Updates (long overdue) include 1.1 extensions

Janusz Szpilewski (szpilews@priv.onet.pl) wrote on 14/Nov/1997 about JVM:
JVM is an emulator of a low level environment. But it is quite different than the existing hardware microprocessor systems. Besides the standard sets of instructions and registers, it offers support for managing objects, arrays, method invocations, global and local variables and some basic data types (mainly those that appear in Java). But there are also some limitations like that there is no direct access to the addresses of variables nor to the references to objects. This feature makes a fully functional implementation of C pointers rather an impossible task. [Therefore], compilers of some languages can be better implemented for the JVM than some other ones. Among successful implementations there are compilers of Prolog, Lisp, Logo and Basic.
A list of existing compilers and interpreters for the JVM points to:
the JVM specification
Jasmin - Java Assembler Interface for the JVM (GNU license) or Jasmin used for (book) "Java Virtual Machine" by Troy Downing and Jonathan Meyer from O'Reilly. (also see)
Javaa - Java Bytecode assembler
Jas - java bytecode assembler

Java version of Coco/R, an LL(1) compiler generator. (book)

A list of packages for compiler construction with Java


Java in the Curriculum

CTI Java in the curriculum conferences:
First (Feb 1997) but this was so broken that you may prefer to look at my repaired copy
Second (Jan 1998) details?