Timothy Richards

I am currently a Ph.D. Candidate in the Computer Science Department at the University of Massachusetts Amherst. I am interested in compilers, programming languages, and virtual machines. My current research focuses on techniques for automatically generating correct code generators using the CISL machine description language.

Research

One of the most difficult tasks a compiler writer faces is the construction of the code generator. The code generator is that part of the compiler that translates compiler intermediate representation (IR) into instructions for a target machine. Unfortunately, implementing a code generator by hand is a difficult, time consuming, and error prone task. The details of both the IR and target instruction set must be carefully considered in order to generate correct and efficient code. This, in turn, requires an expert in both the compiler internals as well as the target machine. Even an expert, however, can produce a code generator that is difficult to verify and debug.

My research focuses on the automatic generation of code generators. In particular, we propose a common machine description language for specifying the semantics of the target instruction set and the compiler IR. These machine descriptions are then used to drive a heuristic search for equivalent instruction sequences between the compiler IR and target instructions. If a sequence of IR and target instructions are found by our proposed search procedure a verifier is applied to determine if the source and target sequences are semantically equivalent. These equivalent sequences are then used to generate patterns for a code generator. Our approach is called Universal Code Generator Generation and its implementation is called FuseCG.

Journal Publications

Edward K. Walters II, J. Eliot B. Moss, Trek Palmer, Timothy Richards, Charles C. Weems, CASL: A Rapid-prototyping Language for Modern Micro-architectures, Computer Languages, Systems, and Structures, 2007, Volume 34/4, pp. 195-211.

J. Eliot B. Moss, Trek Palmer, Timothy Richards, Edward K. Walters II, Charles C. Weems, CISL: A Class-based Machine Description Language for Co-generation of Compilers and Simulators, Int'l Journal of Parallel Programming, (Springer-Verlag). Volume 33, Numbers 2-3, pages 231-246, June 2005.

Workshop Publications

Timothy Richards, Edward K. Walters II, J. Eliot B. Moss, Trek Palmer, and Charles C. Weems, Towards Universal Code Generator Generation, Proceedings of the 2008 International Parallel and Distributed Processing Symposium Workshop on Next Generation Software, Miami, FL, April 2008.

J. Eliot B. Moss, Trek Palmer, Timothy Richards, Edward K. Walters II, Charles Weems, CMDL: A Class-based Machine Description Language for Co-Generation of Compilers and Simulators, Proceedings of NSF Next Generation Systems Workshop, held in conjunction with IEEE International Parallel and Distributed Processing Symposium, April 26, 2004, Santa Fe, NM, 8 pp.

J. Eliot B. Moss, Charles C. Weems, Timothy Richards, The CoGenT Project: Co-Generating Compilers and Simulators For Dynamically Compiled Languages, in IPDPS Workshop on Parallel and Distributed Computing Issues in Next Generation Software, April, 2003.

Technical Reports, Other Publications, Etc.

Timothy Richards, Edward K. Walters II, Trek Palmer, J. Eliot B. Moss, and Charles C. Weems, A Unified Framework for the Automatic Generation of System Tools and Components, Technical Report #56, University of Massachusetts Amherst, 2007.

Timothy Richards, Verfication of Code Generators Using Term Rewriting Systems, Master's Thesis, February, 2005.

Trek Palmer, Timothy Richards, Edward K. Walters II, CoGenT Language Manual, 2004

Teaching

Current

CMPSCI 410/610 Compiler Techniques
Teaching Assistant, Fall 2008, University of Massachusetts, Amherst, MA

Past

CMPSCI 230 Compiler Design
Instructor, Spring 2008, Clark University, Worcester, MA

CSCI 230 Compiler Design
Instructor, Spring 2008, Clark University, Worcester, MA

CISC 105 Introduction to Computers
Instructor, Fall 2007, Springfield College, Springfield, MA

CMPSCI 410/610 Compiler Techniques
Teaching Assistant, Fall 2003/2004/2007, University of Massachusetts, Amherst, MA

me

EMail
'(richards (at) cs (dot) umass (dot) edu)

Phone
(413) 545-0256

Address
Department of Computer Science
140 Governor's Drive
University of Massachusetts
Amherst, MA 01003-9264
Room 354, Cube 4

Curriculum Vitae

Wed Aug 27 14:11:10 EDT 2008
I will be the TA for Compiler Techniques CMPSCI 410/610 this Fall.

Wed Aug 6 23:01:06 EDT 2008
Named my universal code generator generator FuseCG. FuseCG was able to successfully find PowerPC code sequences for some JVM instructions.

Wed Apr 16 20:21:08 EDT 2008
Just got back from IPDPS 2008 in Miami where I gave a talk on the prospects of Universal Code Generator Generation.

Fri Apr 4 21:17:12 EDT 2008
Still in the process of converting to my new website. I should have everything back up soon.