Nicholas V. Lewchenko


I am a computer science PhD student at the University of Colorado Boulder, advised by Gowtham Kaki and 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.



Conflict-aware replicated programming (Carol Project)

Programming for replicated data store systems is a uniquely difficult task. This project is building programming tools that make it a little bit easier by dividing the difficulties into simpler, more familiar problems.

The current focus is the design of Carol, a programming language and dependent refinement type system that makes the expression of a replicated operation's minimum coordination requirements simple and safe.

Active learning for asynchronous typestates

This project is extending 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.