This Web page is a collection of compiler related web resources. This is not a comprehensive list by any wild stretch of the imagination. As I search for compiler related Web pages, I have cached some of the results here for later reference. These references cover general compiler issues rather than java related compiler issues.
This is an edited version of the links from Professor Anurag Acharya's Web page at the University of California at Santa Barbara, titled Links to related papers (290E Winter'00). The original credit for gathering these references belongs to Prof. Acharya. Any errors in the editing are mine.
A perfect hash function is a function that will look up a key (e.g., a character string) and find it in one probe, assuming that it is in the table. In contrast, most hash functions will resolve multiple keys to a single hash location. A linear list is usually chained to the location.
Perfect hash functions/tables can only be built heuristically, so it is not appropriate to use them for hash tables where elements are added. But they work well for reserved words in a programming language, which are static. In this case the hash table is static. The Free Software Foundation publishes the gperf program which calculates perfect hash functions.
For those of us in New Mexico, the Gperf software can be found on the University of New Mexico GNU mirror at ftp://ftp.cs.unm.edu/mirrors/gnu/gperf.
Compiler designers and implementers deal with grammars for artificial computer programming languages. In general these languages are designed to be unambigous and can be largely resolved with an LR(1) or LL(1) parser (C++ seems to have evolved into an exception). Natural languages or languages that are context sensitive cannot be handled with a standard parser generator. Maurice Gittens has been studying context sensitive grammars and has developed the TINY parser generator. Gittens' "dotted grammars" and the TINY parser generator are described on the web page linked above.
I suppose that this is not really an compiler related link, since it looks like you pay a performance penalty for the support of a context sensitive grammar. As a result TINY would probably not be used for programming languages.
There is an interesting project, currently lead by Greg McGary, over in GNU Land to add fine grain bounds checking to the GCC environment (see Bounds Checking Projects). This is an important aid in catching memory errors in C and C++.
Compilers and Compiler Generators: an introduction with C++ by P.D. Terry, Rhodes University, 1996.
This web pages publishes P.D. Terry's book in a variety of formats, including postscript and Adobe pdf format. The author writes:
This site provides an on-line edition of the text and other material from my book Compilers and Compiler Generators - an introduction with C++, published in 1997 by International Thomson Computer Press. The original edition is now out of print, and the copyright has reverted to me.
There is some irony when it comes to Tera. Cray Research was bought by SGI (Silicon Graphics Inc). When SGI ran into financial problems it sold Cray to Tera in a deal that I assume was brokered by the US government (in particular, the NSA). Tera Computer then changed its name to Cray. Only one Tera system ever shipped and the Tera product line became the Cray product line. Perhaps the Tera multi-threaded architecture will quietly disappear (for the second time). Ian Kaplan, April 2000
Assembly resources by Agner Fog.
This web pages contains a number of links to pages on optimizing Intel Pentium code.
This is apparently a compendium of Web links. The Compiling the Java Programming Language web page. There is also a link to the Nullstone web page (a great optimization test suite). But some things are missing. The list of compiler vendors is pretty sparse. They missed Associated Compiler Engineers in the Netherlands, Diab Data, MetaWare and Microtec Research (a divison of Mentor) in California. On the other hand, the page has some links to software/compiler infrastructure software I had not seen, like Mozart