Page Not Found
Page not found. Your pixels are in another canvas. Read more
A list of all the posts and pages found on the site. For you robots out there is an XML version available for digesting as well.
Page not found. Your pixels are in another canvas. Read more
About me Read more
Published:
This post will show up by default. To disable scheduling of future posts, edit config.yml
and set future: false
. Read more
Published:
Using GHCI is terrible. Read more
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
Published:
This is a sample blog post. Lorem ipsum I can’t remember the rest of lorem ipsum and don’t have an internet connection right now. Testing testing testing this blog post. Blog posts are cool. Read more
Short description of portfolio item number 1
Read more
Short description of portfolio item number 2
Read more
We consider the problem of type-directed component based synthesis where, given a set of (typed) components and a query type, the goal is to synthesize a term that inhabits the query. Classical approaches based on proof search in intuiti... Read more
Download here
We present Hoogle+, a web-based API discovery tool for Haskell. A Hoogle+ user can specify a programming task using either a type, a set of input-output tests, or both. Given a specification, the tool returns a list of matching programs ... Read more
Download here
Program synthesizers can offer a user many candidate snippets to fit a specification. How should a user decide which snippet is the right one for them? We introduce the problem of program recognition in the context of program sy... Read more
Powered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how pro... Read more
Program synthesizers promise to save time for the programmer by writing parts of their code for them, provided the programmer knows exactly what they want. For it to suggest that code, the programmer must convey the nuances of their spec... Read more
AI-powered programming assistants are increasingly gaining popularity, with GitHub Copilot alone used by over a million developers worldwide. These tools are far from perfect, however, producing code suggestions that may be incorrect in ... Read more
Published:
I discussed Hoogle+, one of my research projects. It is a component-based type-driven synthesis technique for Haskell. Relying on a library of everyday functions and an input type query, the... Read more
Published:
While program synthesis with refinement types as a specification is rather precise, it is not expressive enough for even some simple programs. However, synthesis with examples as a specification can be fatiguingly verbose, with some prog... Read more
Published:
Program synthesis searches from a high level specification to find a program that matches a user’s intent. Interactive program synthesis considers the human an essential part of that search process. Providing interactions comes in largel... Read more
Published:
We present Hoogle+, a web-based API discovery tool for Haskell. A Hoogle+ user can specify a programming task using either a type, a set of input-output tests, or both. Given a specification, the tool returns a list of matching programs ... Read more
Published:
A live presentation of OOPSLA 2020’s talk of the same name. You can get the slides here. Read more
Published:
Program synthesizers take some specification and produce one or more programs that likely implement it. However, there is a last-mile problem in this task, to actually determine if the output of the synthesizer accomplishes the input tas... Read more
Published:
Powered by recent advances in code-generating models, AI assistants like Github Copilot promise to change the face of programming forever. But what is this new face of programming? We present the first grounded theory analysis of how pro... Read more
COMP 105 - Programming Languages, Tufts University, 2015
Teaching Assistant for Kathleen Fisher’s programming languages course. I led a weekly recitation for students to better understand the semantic differences between... Read more
Programming Languages, University California, San Diego, 2019
Teaching Assistant for Nadia Polikarpova’s programming languages course. I ran a discussion section to reinforce knowledge on the Haskell programming language and run test-prep. As wit... Read more