Nicholas V. Lewchenko
<nicholas.lewchenko@colorado.edu>
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.
Publications
-
RunTime-Assisted Convergence in Replicated Data Types Gowtham Kaki, Prasanth Prahladan, Nicholas V. Lewchenko.
Appeared at PLDI '22. [acm]
-
Sequential Programming for Replicated Data Stores Nicholas V. Lewchenko, Arjun Radhakrishna, Akash Gaonkar, Pavol Černý.
-
DroidStar: Callback Typestates for Android Classes. Arjun Radhakrishna, Nicholas V. Lewchenko, Shawn Meier, Sergio Mover, Krishna Chaitanya Sripada, Damien Zufferey, Bor-Yuh Evan Chang, Pavol Černý.
Projects
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.
-
Sequential Programming for Replicated Data Stores Nicholas V. Lewchenko, Arjun Radhakrishna, Akash Gaonkar, Pavol Černý.
- Discard, a Haskell library implementing the Carol language and runtime.
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.