Nicholas V. Lewchenko


I am a computer science PhD student at the University of Colorado Boulder, advised by Gowtham Kaki, and previously by Pavol Černý.

I am interested in the application of programming languages to distributed systems. My aim in this area is to find language abstractions that make distributed programs as natural to write, mechanically verify, and informally think about as traditional sequential programs.



Verification for Replicated State Applications (current)

Programming distributed applications is a uniquely difficult task. This project is building programming and verification tools that make it a little bit easier by dividing the difficulties into simpler, more familiar problems.

The major contribution is Carol, a programming language that makes the expression of a replicated operation's minimum coordination requirements simple and safe.

The current focus is the design of a verifier for replicated state applications.

Active learning for asynchronous typestates

This project extended active learning techniques to systems with asynchronous behavior. The major contribution is DroidStar, a testing library for automatically generating "callback typestates" that specify callback-based Android classes.