Introduction to the Sketch
Program Synthesis System
Warning: this is an old version of the synthesizer. Please download the latest version from the bit-bucket site
Instructor: Armando Solar-Lezama
Location: 4-149
Course Sessions: Mon Jan 12 - Wed Jan 14 1:30 - 3:30 PM
Grand Competition: Thu Jan 15 1:30 - 5 PM
Wouldn't it be
great if programs could write themselves? Or at
least help with the difficult parts of the code? Sketching is a new
program
synthesis technology that can help you write complicated code by
deriving many
of the tricky details for you. This short 3-day course will
give you an introduction to this exciting new technology.
This short course will serve as a
quick introduction to this
exciting technology. The first session will teach the basics of
sketching, and
the SKETCH synthesis tool through a series of fun exercises and
examples. The next
two sessions will turn you into an expert user; you will learn about
the
technology behind sketching, and the finer points of turning your
insight into
a sketch and using the synthesizer to derive the details for you.
Finally the
last session will put your new skills to the test through a programming
competition where you will have the chance to win some cool prizes.
Experience
Requirements: To
get the most from the course, participants should have programming
experience and basic knowledge of algorithms and linked
datastructures.
Equipment
Requirements:
Participants should bring their own laptop. Before the first session,
participants should install the SKETCH synthesis system version 1.3.
Downloading the Synthesizer:
* At this time a very minor change was made to the source distribution to fix a compilation problem in one platform.
SKETCH requires gcc (4.2 should be compatible), JDK (not just JRE, you
need to compile .java files). If you are using the windows version, you
also need to have cygwin installed in your machine.
The build process for the source distribution is very standard; just run:
./configure && make
&& make install
(You may need to use sudo to run make install).
For the windows distribution, follow the instructions in the INSTALL file.
Schedule of sessions:
Date |
Topics covered in class |
Assignment |
Slides |
Mon Jan 12 |
- The basics of Sketching and the SKETCH Synthesis tool. (PDF, PPT)
|
Simple sketching exercises
Exercise 1.
Exercise 2. |
|
Tue Jan 13 |
- The technology behind sketching. (PDF, PPT)
- Advanced use of the SKETCH synthesizer.
|
Open programming exercise |
|
Wed Jan 14 |
- More advanced Sketching techniques
- Sketching problems worked in class
- Class discussion on the shortcomings of the current
technology and directions for future research
|
|
|
|
|
|
|
Thu Jan 15 |
Grand Sketching Competition
|
|
|