Armando solar-lezama thesis

Pierce and Aaron Roth Citation:

Armando solar-lezama thesis

In the last 40 years, the major innovation in software engineering has been the development of what are called object-oriented programming languages. A complex computer program, with millions of lines of code, can be distilled into some fairly intuitive interactions between objects.

For programmers building a large application from scratch, object-oriented programming is a boon, allowing them to add new functions or make major revisions by changing just a few lines of code. But for a programmer dropped into the middle of a massive development project, trying to navigate the thicket of existing objects can be bewildering.

Learning what the objects are and what they do might take days or even weeks. The system could be of particular use to programmers working with open-source software, whose licensing terms require that its underlying code be publicly disclosed.

A programmer wishing to add a new window to an application, for instance, simply writes a line of code calling up a new window object; the window comes complete with things like scroll bars and size-adjustment tabs and a display line for text. If the programmer wants to add a button to the window, she calls up a new button object.

But after that, things can get more complicated. To describe the layout for the window, the programmer may have to invoke an object called Layout; to enable the button to register mouse clicks, she may have to invoke an object called EventListener.

But the price of that is that you have to know how it works before you can use it. To demonstrate how it works, the researchers applied it to an open-source program called Eclipse, which computer scientists use to develop programming tools for new computer languages.

In the Eclipse framework, the window that displays code written in the new language is called an Editor; a function that searches the code for symbols or keywords is called a Scanner. That much a seasoned developer could probably glean by looking over the Eclipse source code.

But say you want to add a new Scanner to Eclipse, one that allows you to highlight particular symbols. It turns out that, in addition to your Editor and Scanner objects, you would need to invoke a couple of objects with the unintuitive names of DamageRepairer and PresentationReconciler and then overwrite a function called getPresentationReconciler in yet a third object called a SourceViewerConfiguration.

With Matchmaker, the developer would simply type the words "editor" and "scanner" into the query fields, and the program would return the names of the objects that link them and a description of the modifications required to any existing functions.

In the case of Eclipse, it noticed that every time a Scanner was invoked, so were the other objects. But even in those cases, Solar-Lezama argues, some guidance is better than none. To test that thesis, Solar-Lezama and his colleagues did a user study with eight programmers new to Eclipse.

All of them were asked to perform the same task, which required linking up two different types of objects.

Armando solar-lezama thesis

Moreover, the example was specifically chosen so that the instructions provided by Matchmaker were incomplete: They left out one crucial step. Nonetheless, Solar-Lezama says, the programmer who completed the task most quickly without Matchmaker still took longer than the slowest of the programmers who used it.This thesis introduces \emph{sketching}, a new style of synthesis that offers a fresh approach to the synergy problem.

Previous approaches have relied on meta-programming, or variations of interactive theorem proving to help the synthesizer deduce an efficient implementation. PLDI Jean Yang, Travis Hance, Thomas H.

Austin, Armando Solar-Lezama, Cormac Flanagan, and Stephen Chong. Precise, Dynamic Information Flow for Database-Backed Applications. Programming Lan-guage Design and Implementation, JFP Nikhil Swamy, Juan Chen, Cédric Fournet, Pierre-Yves Strub, Karthikeyan Bhargavan, and .

Rishabh Singh for his thesis titled “Accesible programing using program synthesis” — completed under Prof. Armando Solar-Lezama. Singh will be working at Microsoft Research. S. Matthew Weinberg for his thesis titled “Algorithms for Strategic Agents” — completed under Prof.

Armando solar-lezama thesis

Kostis Daskalakis. PAPERS. Structuring the Synthesis of Heap-Manipulating Programs, Nadia Polikarpova, Ilya Sergey, In submission.; Automatic Synchronization for GPU Kernels, Sourav Anand, Nadia' Enforcing Information Flow Policies with Type-Targeted Program Synthesis, Nadia Polikarpova, Jean Yang, Shachar Itzhaky, Travis Hance, Armando .

In addition to Sam, Armando has been my other constant source of inspirations. As someone who knows a great deal about programming systems, computer science, and life in general, I learned a lot from Armando from our many hours of discussions and working through .

Jinseong Jeon, Xiaokang Qiu, Jeffrey S. Foster, Armando Solar-Lezama In Proc. 10th Joint Meeting of the European Software Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software Engineering (ESEC/FSE '15 Tool demonstrations),

EECS Celebrates - Fall Awards | MIT EECS