This web page contains links to sub-pages dealing with various Java related topics, some of which involve work at Bear Products International.
For some applications, Java is constrained by the fact that it is an interpreted language, which resolves symbol references at run time. This makes Java considerably slower than compiled C++ and it limits Java's ability to access system resources to the Java Native Interface. As a result, Java as it currently exists, will not be used in computationally intensive applications like VLSI design software or simulation software.
javad: a Java class file disassembler
The javad program operates much like Sun's javap class file disassembler. That is, javad reads a class file and outputs a pseudo-Java declaration for the class that was the source for the class file. The javad program is published in source form, covered by the Bear Products International published source code copyright. The javad program is written in Java (as Sun would say, 100% pure Java, compile once, run anywhere - pass the Coolaid).
The javad program was written as a tool to help understand the Java class file format. An understanding of the Java class file format is important for any program that reads class files (e.g., Java compilers, debuggers and Java virtual machines (JVMs). A compiler must be able to read the class file format because, unlike C and C++, Java does not use .h files to define external symbol information. This information is contained in the Java class files.
XML is being used to represent information in a wide range of applications. This means that processing (parsing) XML is also needed in more and more cases. The three web pages below publish Java source code that shows how XML can be processed using the DOMParser, the SAXParser and the XmlPullParser.
Building and Processing XML in Java
This web page publishes Java source code that demonstrates how to build XML Document objects. It also publishes code that shows how to parse, validate and process XML. An XML Document object is build from an arithmetic expression or assignment statement (e.g., x = 3 + 4 * 5). The resulting XML Document is then "serialized" to a String object. The String is then read by an XML parser, validated and convered to an XML DOM object. The DOM tree is traversed and the expression (or statement) is evaluated). The XML construction and evaluation objects are used to construct an interactive expression processor.
The DOMParser and the DOM object it builds are useful for processing complex XML documents. However, DOM may impractical for very large XML documents because of its memory use. Also, the construction and traversal of a DOM object has a computational cost.
The SAXParser is an alternative to the DOMParser. This web page publishes example SAXParser code that processes prototype messages that might be used a Trade Engine, a software system that supports computer driven trading.
Processing XML with the XML Pull Parser
As noted on the web page Parsing XML with SAX, the way SAX processes XML is "ass backward". The SAX parser calls code in the application what parses the XML document. The XML Pull Parser uses a standard parsing architecture and can be called by the parsing application.
Building an in-memory tree with the Xml Pull Parser
This web page publishes a remarkably small object that builds an in-memory tree representation of an XML document using the XmlPullParser. A tree-to-XML serializer is also included.
Notes on installing the Resin HTTP and Java server. Resin is an easy to install HTTP and Java server (e.g., it can run Java servlets). Resin is, itself, written in Java.
Wavelets might be thought of as Fourier Transforms for the twentieth and twenty-first centuries. Wavelet techniques have been applied in a wide variety of areas including signal processing, time series analysis and data compression. See also my web page on Wavelets and Signal Processing.
Essays on Java
Build It Faster in Java: a story of software reuse
Many people have commented that writing software in Java allows them to be much more productive than in C++. Why is this? Is software development in Java faster because "Java changes everything"? According to the adds Sun Microsystems once ran in magazines like The New Yorker and Vanity Fair (before the dot-com bubble burst), Java provides an amazing new paradigm, used by the Uber-Programmer, which drastically cuts the cost of software development. Is this true? To understand the answer to these questions we must examine Java, its runtime environment and its class library and leave the hype behind.
Is Java a good first programming language?
I gotten a few emails from people asking if Java is a good choice for a first programming language. For most people younger than high school age, Java is a poor choice for a first programming language. This web page briefly discusses this issue and suggests alternatives.
This web page publishes a variety of Java algorithms.
Web pages discussing miscellaneous Java related topics.
Java is the capital island in the Indonesian archipelago. Back in the days of the Dutch East India company it was a major source of coffee beans. In modern times the island of Java has been eclipsed as a coffee producer by South America and other countries in Asia. As it turns out, Java is also a street in Sunnyvale, California (near Caribbean Dr.). In the computer realm Java is now most famous for being a programming language, designed by Gosling, Steel and Joy at Sun Microsystems. When Java is used in this context, Java is a trademark of Sun Microsystems.
Ian Kaplan, February 12, 2000
Last revised: August 2004