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.
Education
- Ph.D., Massachusetts Institute of Technology, Artificial Intelligence, 1986. Dissertation title: Formal Multilevel Verification of
Synchronous MOS VLSI Circuits.
- Masters, Massachusetts Institute of Technology, Computer Science, 1982
- B.S. University of California, Los Angeles, Math and Computer Science, 1979
Positions
- March 2004 - Independent Researcher.
- Jul 2003 - February 2004. Senior Researcher, Microsoft Research.
I investigated opportunities for MSR to be involved with modern biological research.
- Feb 2000 - July 2003. Senior Researcher, Microsoft Office.
I engaged in technology transfer and code development for improved source code quality and reliability.
I developed and pushed source code annotation mechanisms that are now standard practice throughout Microsoft.
- 1992 - 2000. Senior Researcher, Microsoft Research.
I built and led the Program Analysis Group group ('92-'97)
for researching advanced methods for program analysis of large industrial code bases.
I then built and led the Semantics Based Tools group ('97-'00)
for researching methods for
building and validating more reliable and correct software.
- 1986 - 1992. Assistant Professor in Electrical Engineering and (by courtesy) Computer Science, Stanford University.
Research
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.
Software
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
- POPL '00, PC Member, Boston, MA, 2000
- PASTE99, Program Analysis for Software Tools and Engineering (Program Committee Member), Toulouse, France, September, 1999.
- Foundations of Software Engineering (Program Committee Member), 1998.
- POPL96 Conference (Program Committee Member), St. Petersburg Beach, Florida, 1996.
- Working Conference on Reverse Engineering 1996 (Program Committee Member), 1996
- POPL95 Conference (Program Committee Member), San Francisco, California, 1995.
- The Unix-Haters Handbook
(Co-Editor/Author), IDG Books, June, 1994, ISBN 1-56884-203-1.
This book went out of print in October of 1997, after a press run of 20,000 copies. It is now available online.
- Higher-Order and Symbolic Computation, a journal published by
Kluwer Academic Publishers. (Member of the editorial board since 1990).
- Fuse
(Principal Investigator), a family of partial evaluators developed
at Stanford. I worked on Fuse from 1989 to 1992. There are no
researchers left on the Fuse project.
Publications
-
Weise, D., Crew, R. F.,
Ernst, M., and Steensgaard, B.,
Value Dependence Graphs: Representation without taxation,'' In
Proceedings of the Twentyfirst Annual ACM SIGPLAN Symposium on Principles of
Programming Languages, pp. 297-310, Portland, Oregon, January 1994.
-
Weise, D., and Crew, R. F.,
Programmable Syntax Macros,'' In Proceedings of the ACM SIGPLAN '93
Conference on Programming Language Design and Implementation (PLDI'93),
Albuquerque, New Mexico, June 1993.
-
Ruf, E.,
Weise, D.
On the Specialization of Online Program Specializers,
J. Funct. Program. 3(3): 251-281 (1993)
- Katz, M. and Weise, D.,
Towards a New Perspective on Partial Evaluation,
1992 ACM SIGPLAN Workshop on Partial Evaluation and
Semantics-Directed Program Manipulation, pp. 67-74, San Francisco, June, 1992.
- Ruf, E.,
Weise, D.,
Improving the Accuracy of Higher-Order Specialization using Control Flow Analysis,
In Proceedings of Partial Evaluation and Program Manipulation, pp. 67-74,
1992.
- Wing Yee Au, Daniel Weise, Scott Seligman:
Automatic Generation of Compiled Simulations through Program Specialization,
Design Automation Conference pp. 205-210, 1991.
- Daniel Weise, Roland Conybeare, Erik Ruf, Scott Seligman:
Automatic Online Partial Evaluation,
Funtional Programming and Computer Architecture
pp. 165-191, 1991.
- Erik Ruf, Daniel Weise:
Using Types to Avoid Redundant Specialization,
Partial Evaluation and Program Manipulation 321-333, 1991.
- Morry Katz, Daniel Weise:
Continuing into the Future: On the Interaction of Futures and First-Class Continuations,
LISP and Functional Programming, 176-184, 1990.
- Andrew A. Berlin, Daniel Weise:
Compiling Scientific Code Using Partial Evaluation,
IEEE Computer 23(12): 25-37, 1990.
- Erik Ruf, Daniel Weise: LogScheme:
Integrating Logic Programming into Scheme,
Lisp and Symbolic Computation 3(3): 245-288 (1990)
- Erik Ruf, Daniel Weise:
Nondeterminism and Unification in LogScheme: Integrating Logic and Functional Programming,
Functional Programming and Computer Architecture, pp. 327-339, 1989.
- Daniel Weise:
Constraint Posting for Verifying VLSI Circuits,
International Joint Conference on Artificial Intelligence, pp. 881-886, 1989.
- Morry Katz, Daniel Weise:
Continuing Into the Future: On the Interaction of Futures and First-Class Continuations,
Workshop on Parallel Lisp 1989: pp. 101-102
- Daniel Weise:
Functional Verification of MOS Circuits
Design Automation Conference, pp. 265-270, 1987.
- Joseph Y. Halpern, Michael C. Loui, Albert R. Meyer, Daniel Weise:
On Time versus Space III,
Mathematical Systems Theory 19(1): 13-28 (1986)
Publications From the Research Groups I Led (Analysts and Semantics Based Tools)
-
Manuvir Das ,
Unification-Based Pointer Analysis with Directional Assignments
PLDI '00: Proceedings of the ACM SIGPLAN 2000 Conference on
Programming Language Design and Implementation,
Vancouver, BC, Canada, June 2000.
-
Manuel Fahndrich, Jakob Rehof, and Manuvir Das ,
Scalable Context-Sensitive Flow Analysis Using Instantiation Constraints
PLDI '00: Proceedings of the ACM SIGPLAN 2000 Conference on
Programming Language Design and Implementation,
Vancouver, BC, Canada, June 2000.
-
From Polymorphic Subtyping to CFL Reachability:
Context-Sensitive Flow Analysis Using Instantiation
Constraints
Manuel Fahndrich, Jakob Rehof, and Manuvir Das ,
Microsoft Technical Report MSR-TR-99-84, Microsoft Corporation,
November 1999.
-
Crew, R. F., R.F., ASTLOG: A Language for
Examining Abstract Syntax Trees, Proceedings of the
USENIX Conference on Domain-Specific Languages, Santa
Barbara, California, October 1997.
-
Ruf, E., Partitioning
Dataflow Analyses using Types, In Proceedings of the Twenty-fourth
Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages,
Paris, France, January 1997.
-
Steensgaard, B.,
Points-to Analysis by Type Inference of Programs with Structures and Unions,
In Proceedings of the 1996 International Conference on Compiler Construction,
Linköping, Sweden, April 1996.
-
Steensgaard, B.,
Points-to Analysis in Almost Linear Time, In Proceedings of the
Twenty-third Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming
Languages, St. Petersburg Beach, Florida, January 1996.
-
Ruf, E., Context-Insensitive
Alias Analysis Reconsidered,'' In Proceedings of the ACM SIGPLAN '95
Conference on Programming Language Design and Implementation (PLDI'95),
La Jolla, California, June 1995.
-
Steensgaard, B.,
Sparse Functional Stores for Imperative Programs,'' In Proceedings of
the ACM SIGPLAN Workshop on Intermediate Representations, pp. 62-70,
San Francisco, California, January 1995. Proceedings published as ACM SIGPLAN
Notices 30(3), March 1995.
-
Ruf, E., Optimizing Sparse
Representations for Dataflow Analysis,'' In Proceedings of the
ACM SIGPLAN Workshop on Intermediate Representations (IR'95),
pages 50-61. San Francisco, California, January 1995. Proceedings published as
ACM SIGPLAN Notices 30(3), March 1995.
-
Ernst, M.,
Practical fine-grained static slicing of optimized code (600
dpi PostScript), Microsoft Technical Report MSR-TR-94-14, July, 1994