Programming language theory (plt) Functional reactive programming (data flow), interactive media languages, distributed and parallel programming (for the web).
Software engineering (se) How do we understand large programs? Static and dynamic statistical analyses for bug finding and specification extraction.
Security and verification Policy specification, enforcement, verification, and extraction.
Computational neuroscience and brain computer interfaces Statistical inference techniques and ways to combine statistical and logical systems.
I strongly believe cognition should be considered when examining PL and SE.
2007 National Science Foundation Graduate Research Fellowship (NSF GRF)
2007 Computing Research Association Outstanding Undergraduate Award honorable mention (CRA)
2004 Undergraduate Teaching and Research Assistantship (UTRA)
ActionScript 1st Place Tutorial (3D manipulation)
Current Projects
** Thesis ** Flapjax Functional reactive programming embedding in JavaScript with special constructs for DOM, persistent data, and web service manipulation to achieve a domain specific language for rich web applications. Presented at the 2006 Microsoft Lang.NET Symposium (proprietary format video), Dagstuhl, and other places. (Shriram Krishnamurthi, Michael Greenberg, Gregory Cooper, Aleks Bromfield, Arjun Guha: thesis draft, thesis slides, language website)
Martingale Lightweight statistical stack and view translational invariance analysis to detect and pinpoint compatibility bugs in web applications between browsers. (in planning)
PS2DB
Analysis to automatically transition objects in a dynamically typed transparent persistent store into entries in a more structured relational database, and related tools for object-relational mappings useful in web programs. (in planning)
Older Projects
Margrave Verification and change impact analysis of XACML security policies, also supporting more general queries. ICSE 2005 paper (Shriram Krishnamurthi, Kathi Fisler, Michael Tschantz) and subsequent technical report (Michael Tschantz, Michael Greenberg, Casey Marks).
ASM transactions and case study Source-to-source translation of abstract state machine (evolving algebras) specifications to achieve transactions in an implicitly parallel language. Motivated by our case study in describing a dynamic security policy for a multiclient web program with ASMs. Initial technical report of a case study on dynamic access control modeling (Colin Gordon, Joel Weinberger, Shriram Krishnamurthi). (ASM '07 paper draft, slides)
Sentence, paragraph, and article clustering Instead of word clustering, use larger blocks. For example, do interesting properties of sentences surface such as interchangeability, when we cluster them from a large corpus? Also used as a basis for a final project at the Rhode Island School of Design (RISD). Contact for more information. (Kimberly Burchett, Ryan Tarpine, Eugene Charniak)
Ersatz Brain Project Examination of literature relating to current models of how the brain processes information, techniques to interface with continuous, complex, and fuzzy values, as well as current techniques for online interaction with rich, invasive devices. Contact for more information.
Power law process usage Barabasi showed, for cognitive purposes, that a priortization of tasks will lead to a power law in activity. While not showing causality, recordings of single user activity generalizes over published accounts of multiple user scenarios in shared resource environments like filesystems and job time. Contact for more information. (gracias Tom Griffiths)
FSM / Neural Network Equivalence Literature survey. Contact for more information.
Bezier curve library(real old) ECMAScript library for manipulations of the dominant curve primitive found in vector animation systems such as Flash. Contact for more information.
Other (more typical class projects) Java interface to fvwm for easier widget integration, boosting algorithm for multiagent auction competition, various operating system components, various type analyses and garbage collectors.
Industry
Adobe (2007) Advanced Technology Labs: Documents and Applications Group
95.5 WBRU (2003-2005) As web director, founded web department, formed initial graphics group, and created new revenue streams and "added value" offerings. Active participation in long and short term event and policy decisions. Daily involvement in design, event planning, and joint work with sales, promotions, and music departments. Took pretty pictures and drove bands around sometimes, too.
Macromedia (2005) Change impact analysis of language design decisions in ActionScript 3 with respect to Flex 2.0, the largest known ActionScript application. Flex 2.0 debugging of release critical features and refactorings related to language design changes.
Contracting (1999-2003) Web and intranet development, accounting utilities, Flash design and optimization.
Research, Teaching Assistantships
Research Assistant (2006) Shriram Krishnamurthi: see Flapjax.
Research Assistant (2004) Shriram Krishnamurthi, Kathi Fisler: see Margrave.
Head TA (2005) CS173, Programming Language Theory
Head TA (2006) CS051, Models of Computation
TA, Course Designer (2006) CS166, Systems Security (first offering)
TA (2007) CS022, Discrete Mathematics
Favorite Courses
There are many, but 10 of my favorite are below. I'm always happy to discuss them.