Page type: course

CS838 Java!;CS838: Java!;http://www.cs.wisc.edu/~cs838-1;Instructors;InstructorMark HillJames Larus;Office6373 CS5393 CS;Office HoursMonday 2-3 pm, Wed 11-12 amTuesday 3-4 pm , Friday 11-12 am;Phone262-2196262-9519;Emailmarkhill@cs.wisc.edularus@cs.wisc.edu;Home Pagewww.cs.wisc.edu/~markhillwww.cs.wisc.edu/~larus;Java;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.;Background Material;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).;Implementation Reader;A collection of papers on Java implementation is available at DoIT.;On-Line Documentation;Sun maintains a web site that contains considerable Java documentation. Its URL is http://java.sun.com. This site contains considerable Java documentation,;including:;The Java Language Specification.;The Virtual Machine Specification;The Java API (Application Programmer Interface, i.e., libraries) Specification;Java Language Tutorial;Security-related papers:;Dean, Felten, Wallach, "Java Security: From HotJava to Netscape and Beyond.;Frank Yellin, "Low Level Security in Java.;JavaSoft, Frequently Asked Questions - Applet Security.;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.;Lecture Slides;Postscript of our lecture transparancies are available:;Java Big Picture;Java Language Overview;Java Virtual Machine;Implementing the Java VM in Hardware?;Java Security;Project;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++?;Project Meetings;Date;Time;Group;Tue Nov 121:00__;Tue Nov 121:15__;Tue Nov 121:30__break if possible;Tue Nov 121:45__;Tue Nov 122:00__;Thu Nov 141:00__;Thu Nov 141:15__;Thu Nov 141:30__break if possible;Thu Nov 141:45__;Thu Nov 142:00__;