skip navigation

This page looks better in modern browsers. Please upgrade.

Brown Home Brown Home Brown Home Brown CS
 

Shriram Krishnamurthi

Shriram Krishnamurthi

Associate Professor of Computer Science

Contact Information

Contact Page
Personal home page: http://www.cs.brown.edu/~sk/

Research Areas

Educational Technology
Programming Languages
Security
Software Engineering
Theory of Computation
Verification and Reliable Systems

Research Themes

Applications to Education
Internet

Research Topics or Projects

PLT Scheme
Software Evolution
Principles and Pragmatics of Interactive Software
Validation Support for Lightweight Languages
Verification Techniques for New Styles of Software Composition

Courses Taught

CSCI1730   Introduction to Programming Languages
CSCI2950-X   Topics in Programming Languages & Systems
CSCI1900   Software System Design
CSCI2340   Software Engineering

Research Interests

Shriram Krishnamurthi is a computer scientist who builds software applications. Some of his applications have been highly influential, with users ranging from labs hunting gene loci to high schools introducing computer science to students.

Building, distributing, and supporting these applications has provided him with a personal sense of the many ways in which the same software that is so valuable can also go horribly wrong. His analyses of systems others have built, from email suites to corporate Web software, have reinforced this understanding. He has concluded that progress in software methods depends on research that integrates software engineering, programming languages and verification. Failing to exploit any one of these three will lead at best to weak solutions and at worst to bad investments on the entirely wrong problem. In the big picture, he is driven by the desire to make computer science more like other engineering disciplines—replacing disclaimers with warranties.

Prof. Krishnamurthi’s early work in programming languages tackled foundational problems in language design for extensible software construction. This work yielded both improved language-modularity mechanisms and working solutions for conventional languages, both of which have withstood the rigors of daily use in the DrScheme programming environment.

At Brown, he came to realize that software verification had fallen well behind advances in languages and that the gap was growing steadily. He began to devise modular verification techniques for the novel module systems he others have designed. He showed that these module systems not only solve some traditional modular-verification problems, but also introduce a fascinating range of new challenges.

Prof. Krishnamurthi’s programming language work has shifted to a study of interactivity. Modern applications are fundamentally interactive, yet traditional programming languages have little to do with interaction. For interactive Web applications, he first exploited connections to the theoretical foundation of continuations, and have since invented new compilation techniques, control operators, and notions of state. Complementarily, I am building a new dynamic dataflow programming language centered on interaction.

He is also deeply involved in improving introductory computing curricula at the high school and university levels. I believe computing belongs at the fore of any modern liberal arts education. Unfortunately, most introductory curricula fail to convey the centrality of computing. He works on the PLT Scheme programming system and TeachScheme! computing curriculum, which aim to provide educators with alternatives to the current pedagogy.

Selected Publications

Cooper, G. H., and Krishnamurthi, S. Embedding Dynamic Dataflow in a Call-by-Value Language. In Proceedings of the European Symposium on Programming (Mar 2006), pp. 294-308. [ home ]

Fisler, K., Krishnamurthi, S., Meyerovich, L. A., and Tschantz, M. C. Verification and Change-Impact Analysis of Access-Control Policies. In Proceedings of the International Conference on Software Engineering (May 2005), pp. 196-205. [ home ]

Pettyjohn, G., Clements, J., Marshall, J., Krishnamurthi, S., and Felleisen, M. Continuations from Generalized Stack Inspection. In Proceedings of the Special Interest Group on Programming Languages (SIGPLAN) International Conference on Functional Programming (Sep 2005), pp. 216-227. [ home ]

Marceau, G., Cooper, G. H., Krishnamurthi, S., and Reiss, S. P. A dataflow language for scriptable debugging. In Proceedings of the IEEE International Symposium on Automated Software Engineering (Sep 2004), pp. 218-227. [ home ]

Matthews, J., Findler, R. B., Graunke, P. T., Krishnamurthi, S., and Felleisen, M. Automatically Restructuring Programs for the Web. Automated Software Engineering Journal 11, 4 (2004), 337-364. [ home ]

Graunke, P. T., Findler, R. B., Krishnamurthi, S., and Felleisen, M. Modeling Web Interactions. In Proceedings of the European Symposium on Programming (Apr 2003), pp. 238-252. [ home ]

Li, H. C., Krishnamurthi, S., and Fisler, K. Verifying Cross-Cutting Features as Open Systems. In Proceedings of the ACM Special Interest Group on Software Engineering (SIGSOFT) International Symposium on the Foundations of Software Engineering (Nov 2002), pp. 89-98. [ home ]

Fisler, K., and Krishnamurthi, S. Modular Verification of Collaboration-Based Software Designs. In Proceedings of the Joint European Software Engineering Conference and ACM Special Interest Group on Software Engineering (SIGSOFT) Symposium on the Foundations of Software Engineering (Sep 2001), pp. 152-163. [ home ]

Graunke, P. T., Krishnamurthi, S., van der Hoeven, S., and Felleisen, M. Programming the Web with High-Level Programming Languages. In Proceedings of the European Symposium on Programming (Apr 2001), pp. 122-136. [ home ]


All publications by Shriram Krishnamurthi
Page Owner: Shriram Krishnamurthi Last Modified: Tue Jan 22 15:11:26 2008