Christopher W. Fraser

http://cwfraser.webhop.net

Education

BA magna cum laude 1974 (mathematics and computer science), Western Washington State College.

MS 1975, PhD 1977 (computer science), Yale University. Dissertation director: Alan Perlis.

Employment

University of Arizona, Department of Computer Science. Assistant Professor, 1977-82; Associate Professor, 1982-86; Acting Head, 1984-85.

Bell Labs, Computing Sciences Research. Technical Staff, 1986-96.

Microsoft Research. Senior Researcher, 1996-2005.

Google. Software Engineer, 2005-06; Senior Software Engineer, 2006-07; Staff Engineer, 2007.

Concurix. Software Engineer, since 2012.

Consulting and independent projects. Since 2007.

Service and Awards

Technical Program Committees: ACM Symposium on Principles of Programming Languages, 1982; ACM SIGPLAN Symposium on Compiler Construction, 1986; SIGPLAN Symposia on Programming Language Design and Implementation, 1990-92; First Annual Workshop on Compiler Support for System Software, 1996; ACM SIGPLAN Workshop on Interpreters, Virtual Machines and Emulators, 2003; International Symposium on Code Generation and Optimization (CGO), 2004; Third International ACM SIGPLAN/SIGOPS Conference on Virtual Execution Environments, 2007.

Technical Program Chair, SIGPLAN Symposium on Programming Language Design and Implementation, 1992.

Advisory Editorial Board, Software-Practice and Experience, since 1992.

NSF advisory panel, 1999.

USENIX Lifetime Achievement Award for major contributions to the Software Tools Users Group.

Books

A Retargetable C Compiler: Design and Implementation. With D. Hanson. Addison-Wesley, 1995.

Refereed Papers

Clone detection via structural abstraction. With F. Ma and W. Evans. WCRE 2007, 10/2007. Extended version, Software Quality Journal, 2009.

An instruction for direct interpretation of LZ77-compressed programs. Software-Practice and Experience 36(4):391-411, 4/2006. PDF.

Retrospective: Automatic generation of peephole optimizations. With J. Davidson. 20 Years of the ACM SIGPLAN Conference on Programming Language Design and Implementation (1979-1999) - A Selection:104-111, 4/2004. PDF.

Grammar-based compression of interpreted code. With W. Evans. Communications of the ACM 46(8):61-66, 8/2003. PDF.

Bytecode compression via profiled grammar rewriting. With W. Evans. PLDI'2001:148-155, 6/2001. PDF.

Automatic inference of models for statistical code compression. PLDI'99:242-246, 5/1999. PDF.

Finite-state code generation. With T. Proebsting. PLDI'99:270-280, 5/1999. PDF.

Code compression. With J. Ernst, W. Evans, S. Lucco and T. Proebsting. PLDI'97: 358-365, 6/1997. PDF.

Operating system directions for the next millennium. With W. Bolosky, R. Draves, R. Fitzgerald, M. Jones, T. Knoblock, and R. Rashid. HotOS-VI:106-110, 519/1997.

Detecting pipeline structural hazards quickly. With T. Proebsting. POPL'94:280-287, 1/1994. PDF.

Engineering efficient code generators using tree matching and dynamic programming. With D. Hanson and T. Proebsting. ACM Letters on Programming Languages and Systems 1, (3) 213-229, 9/1992. PDF. Software home page.

Simple register spilling in a retargetable compiler. With D. Hanson. Software-Practice and Experience 22(1):85-99, 1/1992. PDF.

A code generation interface for ANSI C. With D. Hanson. Software-Practice and Experience 21(9):963-988, 9/1991. PDF.

Hard-coding bottom-up code generation tables to save time and space. With R. Henry. Software-Practice and Experience 21(1):1-12, 1/1991.

Live text. With B. Krishnamurthy. Software-Practice and Experience 20(8):851-858, 8/1990.

A language for writing code generators. PLDI'89:238-1245, 6/1989. PDF.

Automatic generation of fast optimizing code generators. With A. Wendt. PLDI'88:79-84, 6/1988. PDF.

Automatic inference and fast interpretation of peephole optimization rules. With J. Davidson. Software-Practice and Experience 17(11):801-812, 11/1987.

An editor for revision control. With E. Myers. ACM Transactions on Programming Languages and Systems 9(2):277-295, 4/1987. PDF.

Optimization of argument evaluation order. With D. Hanson. Information Processing Letters 24:391-395, 4/1987.

Integrating code generation and optimization. With A. Wendt. Proceedings of the SIGPLAN'86 Symposium on Compiler Construction:242-248, 6/1986. PDF.

High-level language facilities for low-level services. With D. Hanson. POPL'85:217-224, 1/1985. PDF.

Code selection through object code optimization. With J. Davidson. ACM Transactions on Programming Languages and Systems 6(4):505-526, 10/1984. PDF.

Register allocation and exhaustive peephole optimization. With J. Davidson. Software-Practice and Experience 14(9):857-865, 9/1984.

Analyzing and compressing assembly code. With E. Myers and A. Wendt. Proceedings of the SIGPLAN'84 Symposium on Compiler Construction:117-121, 6/1984. PDF.

Automatic generation of peephole optimizations. With J. Davidson. Proceedings of the SIGPLAN'84 Symposium on Compiler Construction:111-116, 6/1984. PDF.

A high-level programming and command language. With D. Hanson. Proceedings of the SIGPLAN'83 Symposium on Programming Language Issues in Software Systems:212-219, 6/1983. PDF.

A generalization of two code ordering optimizations. Information Processing Letters 16(2):67-70, 2/26/1983.

Exploiting machine-specific pointer operations in abstract machines. With D. Hanson. Software-Practice and Experience 12(4):367-373, 4/1982.

A machine-independent linker. With D. Hanson. Software-Practice and Experience 12(4):351-366, 4/1982. Errata PDF, Full paper w/errata PDF.

A programmable text editor. Software-Practice and Experience 12(3):241-250, 3/1982.

Eliminating redundant object code. With J. Davidson. Conference Record of the Ninth Annual ACM Symposium on Principles of Programming Languages:128-132, 1/1982. PDF.

Syntax-directed editing of general data structures. Proceedings of the ACM SIGPLAN/SIGOA Symposium on Text Manipulation:17-21, 6/81. PDF.

Editing data structures. With A. Lopez. ACM Transactions on Programming Languages and Systems 3(2):115-125, 4/1981. PDF.

Maintaining program variants by merging editor scripts. Software-Practice and Experience 10(10):817-821, 10/1980.

The design and application of a retargetable peephole optimizer. With J. Davidson. ACM Transactions on Programming Languages and Systems 2(2):191-202, 4/1980. PDF.

A device driver for display terminals. With C. Coutant. Software-Practice and Experience 10(3):183-187, 3/1980.

A generalized text editor. Communications of the ACM 23(3):154-158, 3/1980. PDF.

A compact, portable CRT-based text editor. Software-Practice and Experience 9:121-125, 2/1979.

A compact, machine-independent peephole optimizer. POPL'79:1-6, 1/1979. PDF.

A knowledge-based code generator generator. Proceedings of the ACM SIGPLAN/SIGART Symposium on Artificial Intelligence and Programming Languages:126-129, 8/1977. PDF.

Software Distributions

IBURG, a code-generator generator. With D. Hanson and T. Proebsting. 1993.

LCC, a retargetable compiler for ANSI C. With D. Hanson. 1990-96.

The University of Arizona Y/peephole optimizer distribution(1.8MB). With J. Davidson and D. Hanson. Dept. of Computer Science, University of Arizona, Tucson, AZ, 1983.

copt, a simple, retargetable peephole optimizer, used for instruction and prototyping. 1982.

The machine-independent linker link. With D. Hanson. TR 82-10, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1982.

The retargetable peephole optimizer PO. With J. Davidson. TR 79-14, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1979.

The display editor S. TR 79-7a, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1979.

Patents

Selection of documents to place in search index. US patent 8,255,386. With T. Annau, C. Garrett, S. Subramaniam, S. Joshi, R. Emery-Montemerolo, A. D'Souza, J. Wilson.

Program history in a computer programming language. With T. Proebsting and B. Zorn. US patent 7,111,283.

Method and system for compressing program code and interpreting compressed program code. US patent 6,907,598.

One-pass greedy-pattern-matching finite-state-machine code generation. With T. Proebsting. US patent 6,748,588.

Automatic inference of models for statistical code compression. US patent 6,516,305.

Whole program path profiling. With J. Larus. US patent 6,327,699.

Safe general purpose virtual machine computing system. With R. Wahbe, S. Lucco, and V. Morrison. US patent 6,151,618.

Other publications

DiffTree: Inferring phylogenies for evolving software. Microsoft Research, MSR-TR-2005-109, 8/2005. PDF.

Clone detection via structural abstraction. With W. Evans. Microsoft Research, MSR-TR-2005-104, 8/2005. PDF.

An instruction for direct interpretation of LZ77-compressed programs. Microsoft Research, MSR-TR-2002-90, 9/2002. PDF.

The lcc 4.x code-generation interface. With D. Hanson. MSR-TR-2001-64, Microsoft Research, 7/2001. PDF.

Compile C Faster on Linux. With D. Hanson. Linux Journal 25:32-33, 5/1996.

Custom instruction sets for code compression. With T. Proebsting. 10/1995. PDF.

Induction operators and intermediate forms. With T. Proebsting. 10/1995. PDF.

BURG-Fast optimal instruction selection and tree parsing. With R. Henry and T. Proebsting. SIGPLAN Notices 27(4):68-76, 4/1992. PDF.

A retargetable compiler for ANSI C. With D. Hanson. SIGPLAN Notices 26(10):29-43, 10/1991. PDF.

A structure editor generator for documents, programs, and other structured data. With A. Shaw. TR 86-04-01, Dept. of Computer Science, University of Washington, Seattle, WA, 1986.

Integrating operating systems and languages. With D. Hanson. TR 84-2, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1984.

The EZ reference manual. With D. Hanson. TR 84-1, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1984.

The S programming language. With D. Chimenti and D. Hanson. TR 81-13, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1981.

A software system and command language based on connecting coroutines. TR 80-17a, Dept. of Computer Science, University of Arizona, Tucson, AZ, 1980.

Implementation of attractive dialogues in nutritive analysis and clinical dietetics information systems. With A. Forrey, R. Metcalf, J. Karkeck, N. Buergel, and C. Matthys. Medical Informatics 5(4):253-266, 1980.

Automatic Generation of Code Generators. PhD dissertation, Yale University, 1977.