I am interested broadly in the fields of programming languages and software engineering, especially where they intersect. Specifically, my research focuses on static and dynamic program analysis; empirical software engineering; software analytics; software repository mining; automated refactoring; programming language semantics; and program verification. My goal is to provide developers with powerful new tools for understanding, creating, analyzing, and improving software. As part of this, I am a continuing contributor to Rascal, a meta-programming language for program analysis, program transformation, and programming language implementation. I’m also still an active user of the Maude system, focusing on uses of Maude for language specification and analysis.

  • Programming Languages
  • Program Analysis
  • Software Engineering
  • PhD in Computer Science, 2009

    University of Illinois Urbana-Champaign

  • BS in Computer Science, 1995

    Western Illinois University

Recent Publications

To see all publications, click here.
Composing Model-Based Analysis Tools, Chapter 2: Foundations
Composing Model-Based Analysis Tools, Chapter 4: Composition of Languages, Models, and Analyses
Planning a Conceptual Framework Approach for Teaching Cloud Fundamentals
Cloud Computing Curriculum: Developing Exemplar Modules for General Course Inclusion (Report)


  • +1 828 262 7159
  • 224 Joyce Lawrence Lane, ASU Box 32133, Boone, NC 28608
  • I’m on the third floor of Anne Belk Hall, room 312L.
  • Monday 1:00pm to 3:00pm
    Tuesday 2:00pm to 4:00pm
    Wednesday 1:00pm to 3:00pm