


Postscript Assignments

      Assignment 1, one page per sheet 
      Assignment 1, two pages per sheet 
      Project Descriptions, one page per sheet 
      Project Descriptions, two pages per sheet 



Useful References

      M.Brandis, H.Mvssenbvck: Single-Pass Generation of Static Single Assignment
      Form for Structured Languages. ACM Trans. on Programming Languages and
      Systems 16(6), Nov.1994, 1684-1698 
      Cliff Click, Combining Analyses, Combining Optimizations, Ph.D. Thesis, Rice
      University. (One page per sheet) , (Two pages per sheet) 
      Preston Briggs, Register Allocation via Graph Coloring, Ph.D. Thesis, Rice
      University. (One page per sheet) , (Two pages per sheet) 



Java Links

Sun maintains a web site that contains considerable Java documentation. Its URL is
http://java.sun.com. This site contains considerable Java documentation, including (thanks
to Mark Hill and Jim Larus for putting this info on their CS838 page at Wisconsin):

      The Java Language Specification. 
      The Virtual Machine Specification 
      The Java API (Application Programmer Interface, i.e., libraries) Specification 
      Java Language Tutorial 

The web also can provide a Java Development Kit for writing and running Java
applications on a PC. You should be able to find it installed already on many UNIX
systems. You can also run Java applets in recent versions of Netscape and Microsoft's
Internet Explorer.

Sample Java applets are available from many places. Here are three examples: 

      Sun has a collection at: http://java.sun.com/java.sun.com/applets/index.html. 
      The largest collection of Java programs and applets appears to be at
      http://www.gamelan.com. 
      Free tools for java appears at http://www.blackdown.org/~kbs/. 

A really interesting site on optimizing Java programs and related tools has been developed
by Jonathan Hardwick at CMU. He develops his own benchmark and also lists several
other benchmarks on his resources page. I have found one other benchmark suite called
BenchBeans . 

If you get tired waiting for bits to cross the ocean, you can find lots of interesting
information and mirror sites of important software and documentation via the home page
of The Danish Java Developer's Club . 

September 1996 
