Links to Compiler Related Web Resources

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.


Perfect Hash Function Creation

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.

Parsing context sensitive grammars

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.

Bounds Checking - Catching Memory errors

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++.

Compiler Construction References

Processor Techniques


Processors

Links to pages of compiler related links