Date: Thu, 07 Nov 1996 19:24:22 GMT Server: NCSA/1.5 Content-type: text/html Last-modified: Thu, 31 Oct 1996 21:31:37 GMT Content-length: 8011
http://www.cs.wisc.edu/~cs838-1
Instructor | Mark Hill | James Larus |
Office | 6373 CS | 5393 CS |
Office Hours | Monday 2-3 pm, Wed 11-12 am | Tuesday 3-4 pm , Friday 11-12 am |
Phone | 262-2196 | 262-9519 |
markhill@cs.wisc.edu | larus@cs.wisc.edu | |
Home Page | www.cs.wisc.edu/~markhill | www.cs.wisc.edu/~larus |
Java is an curious mixture of extreme hype and sound technology. This fall, CS838 is a graduate seminar that will examine Java, including the Java programming language, network security, design of distributed applets, Java virtual machines, and Java implementations (compilers, interpreters, and special hardware). Other Java-related topics are both welcome and encouraged.
This course will be taugh as a research seminar. First, the professors are not Java experts, but expect to learning along with the students. What you get out of this course will be experience in studying and developing new ideas, interactioning with colleagues, and new insight into Java. We only plan to lecture for a few weeks to present an overview of Java. Then students will work on two-month-long group projects. Students will be evaluated on the oral and written presentation of their project. This offering of CS 838 is NOT a core CS course.
There is no text for this course, although there are countless Java books in bookstores. Most of these books were written very quickly and are very superficial. The Addison-Wesley series is the "official" Sun reference books on Java and are much better than the average (but see below; many of them are on-line).
A collection of papers on Java implementation is available at DoIT.
Sun maintains a web site that contains considerable Java documentation. Its URL is http://java.sun.com. This site contains considerable Java documentation, including:
Security-related papers:
The web also can provide a Java Development Kit for writing and running Java applications on a PC. This kit is already installed for the SPARCstations in the department (/s/java). The department also has the source to the JDK. You can also run Java applets in recent versions of Netscape and Microsoft's Internet Explorer.
Sample Java applets are available from many places. Sun has a collection at: http://java.sun.com/java.sun.com/applets/index.html (that's not a typo!). The largest collection of Java programs and applets appears to be at http://www.gamelan.com.
Postscript of our lecture transparancies are available:
Click here for project assignment
Below is a list of possible project topics. It is intended as a starting point, not an enumeration.
A Comparison of Java with C++, Smalltalk, Scheme, and Simula
An Implementation of a Java Interpreter that Caches Recently-Used Basic Blocks
On-the-fly Compilation of Java Applets on Small-Memory Embedded Machines
The Memory System Behavior of Compiled vs. Interpreted Java Applets
An Evaluation of Alternative Implementations of Java Monitors
A Comparison of the Java Virtual Machine with Xerox Mesa Bytecodes
The Microarchitecture of a Processor that Directly Executes Java Bytecodes
Optimizing Java Compiler
Rationalizing the Java Library
Performance Evaluation Tools and Results for Java Programs
Evaluation of Java Security
Investigate compiling other languages to the Java VM. (Subset of C -> Java VM would be very interesting.)
Investigate was of formalizing the security requirements of a language and system and ways of automatically generating/verifying VM implementations.
Any security-related topic....
Investigate the cost of making the primitive types (int, float, bool, etc) objects and eliminating the dual type systems. In particular, is Java's static typing sufficient to alleviate the overheads?
Java EEL
Dynamic compilation....
Can the language-mandated tests (array bounds, null pointer, etc) be scheduled in unused cycles on superscalar processors, so that Java runs as fast as an unsafe language like C++?
Date | Time | Group |
Tue Nov 12 | 1:00 | __ |
Tue Nov 12 | 1:15 | __ |
Tue Nov 12 | 1:30 | __break if possible |
Tue Nov 12 | 1:45 | __ |
Tue Nov 12 | 2:00 | __ |
Thu Nov 14 | 1:00 | __ |
Thu Nov 14 | 1:15 | __ |
Thu Nov 14 | 1:30 | __break if possible |
Thu Nov 14 | 1:45 | __ |
Thu Nov 14 | 2:00 | __ |