Daniel Weise

Affiliate Faculty, UW Computer Science and Engineering

Dr. Weise researches the computational evolution of simulated organisms under mutation to model and (hopefully) understand the evolutionary trajectory that managed to turn the first self-replicating protocells into the living world as we know it. Modern cells show no vestige of their early beginnings: billions of years of evolution have removed all the scaffolding and intermediate steps that got them from there to here. Dr. Weise is in the initial phases of this research.

Winter Quarter '05 Dr. Weise led 590CE, Readings and Research in Computational Evolution and Digital Organisms.




We've only recently started up the research program, and much of what we have done is preliminary. We have conducted research on gene duplication events during the evolution of digital organisms, epistatic interactions of genes, digital organisms that are not based on a Von Neumann architecture, and the metabolic analysis of digital organisms via trace analysis.


The AST Toolkit, which became PREfast (Microsoft Internal Tool)

The research groups that I led in Microsoft Research designed and built the AST Toolkit, a platform for creating custom code scanners. In its final incarnation, it was a version of Microsoft's commercial C/C++ compiler that exposed its internal data structures via a COM API and loaded DLLs that would operate over these internal structures after each top level item was parsed. Our public research (reported in some of the papers listed below) used this platform. The AST Toolkit was successfully exported by the PPRC group in Microsoft Research to the rest of Microsoft as PREfast, a development tool that caught, and continues to catch, many, many bugs in legacy and new code.

The original design of the AST Toolkit included an annotation mechanism for annotating source code and exposing these annotations to the custom DLLs. My belief then, as now, was that automatic error detection would be limited unless it also had access to higher level domain invariants and knowledge. I moved to the Office group to push the agenda of code annotation from within. Through my efforts, and the efforts of many others, code annotation with additional invariants is quickly becoming common practice throughout the major product groups in Microsoft, as is the routine use of custom DLLs for finding all kinds of bugs and horrible coding constructs.

What else I've been up to


Publications From the Research Groups I Led (Analysts and Semantics Based Tools)