CS294-2: Software Synthesis

Spring 2006

Time and Place: Tue and Thu 9:30-11:00, 310 Soda
Units: 3
Recommended background: CS 164 or equivalent
Instructor: Rastislav Bodik, 773 Soda
Office hours: Tue 11-12, Thu 3-4

 

Course overview: Programmers would love to have their code synthesized from a concise specification, and computer science has been trying to satisfy their wishes for three decades. While exciting theoretical results exists and successful tools for specific domains have emerged, synthesis has not yet entered the mainstream. The purpose of the course is to understand the reasons and to synthesize a research direction for software synthesis that suits today's programmers and processes. We'll base our discussions on lessons from old classics, on successes and failures of past synthesis tools, and promises of recent technologies, some achieved here in Berkeley. Our view of code synthesis will be broad, spanning from deductive synthesis to genetic programming (see the topics below). Similarly, we'll cover a range of applications, from high-performance computing, object-oriented programming, API programming, assembly-level programming, to agent programming.

Intended audience: Graduate students in EECS. Seniors with interest in programming systems are encouraged to enroll. The course will cover diverse code synthesis technology and applications, and hence may be of interest not only to students in programming languages, but also in scientific computing, graphics, CAD, and other areas.

Student workload: Reading assigned papers and participating in class discussions. Presenting one paper in class (undergraduates may choose to present a demo of a tool). Project (literature review, novel algorithm design, or implementation).

Lecture format: Each lecture will discuss a paper, with active participation from students. Project presentations. Some lectures will be presented by guest speakers.

Initial list of topics and papers (under construction). To be refined according to student interests:

Papers suggested by students:

 

Links to further candidate papers: