Regarding static analysis of dynamic languages, check out Starkiller: http://web.mit.edu/msalib/www/urop/ http://www.python.org/pycon/dc2004/papers/1/paper.pdfIt is a static analysis tool for Python, which is used for optimisation. However, the techniques can also be used for static analysis to catch possible errors at compile time.
Regards. Asger Ottar Alstrup