Pre-Candidacy Graduate Research
I am currently pursuing computer science research as a Ph.D student at the University of Maryland, College Park. My dissertation is entitled Automatic Floating-Point Precision Analysis and my thesis advisor is Dr. Jeff Hollingsworth.
Prior to my thesis research, I worked as a graduate research assistant with Dr. Jeff Hollingsworth on the Dyninst project. Dyninst is a library that permits the insertion of code into a running program. The goal is to provide platform-independent code patching capabilities. Some of my Dyninst-related work so far has been devoted to improving SymtabAPI, which is the component of Dyninst that reads and write binary files on disk.
Project website: http://www.dyninst.org/
Another of my contributions to the project has been a new set of nightly tests and a web interface for viewing the results.
We are currently pursuing the idea of using Dyninst to insert floating-point instrumentation, particularly in the area of rounding error analysis. During the Fall 2008 semester, I took CMSC 714 (High Performance Computing) with my advisor (Dr. Hollingsworth). A group of students and I built a prototype floating-point error analysis tool with Dyninst. I am now working to expand this prototype and implement other kinds of floating-point analysis tools.
See my dissertation research page for more details.
During the Fall 2007 semester, I took CMSC 631 (Static Program Analysis) with Dr. Michael Hicks, and as a final project, prepared a survey of automatic code patch generation techniques.
- M. Lam. “Automatic Patch Generation.” Report. 17 Dec 2007. (PDF)
During the Spring 2008 semester, I took CMSC 838F (Language-Based Security) with Dr. Jeff Foster, and as a final project with fellow student Cole Trapnell, wrote a new language called EasyCell for describing cell dynamics.
- C. Trapnell and M. Lam. “EasyCell: A Language for Describing Cellular Signalling Pathways.” Report. 20 May 2008. (PDF)
During the last couple of years of my undergraduate, I found my interests turning towards programming languages and software engineering. During my senior year at James Madison University, I was an assistant programmer for the Immersive Visualization System project (the “video wall”), and helped develop an object-oriented framework for writing simple OpenGL applications.
Project website: http://code.google.com/p/xor/