The Lugano PL Seminar meets weekly to discuss papers in the area of programming languages, program analysis, and compilers. The goal is to encourage interactions and discussions between students, researchers, and faculty with interests in this area. The seminar is open to everybody interested in languages and compilers.

Please join the Google+ community for the course.

Submit reviews on Moodle.

We meet every Wednesday 15:30–17:00 in SI-015 (TBD).

Schedule tentative

Date Paper Presenter
Introduction
Wed 20 Feb Welcome, organizational meeting
Meta-programming
Wed 27 Feb Optimizing data structures in high-level programs Amanj
Wed 6 Mar No class (Aibek's proposal)
Virtual machines
Wed 13 Mar Self: The Power of Simplicity (background), Optimizing dynamically-dispatched calls with run-time type feedback Aibek
Wed 20 Mar No class (out of town)
Wed 27 Mar Implementing JalapeƱo in Java (background), Adaptive optimization in the Jalapeno JVM Mohammad
Wed 3 Apr No class (Easter holiday)
Wed 10 Apr Relational queries over program traces, Finding application errors and security flaws using PQL Matej
Concurrency and distribution
Wed 17 Apr
at 14:30
The implementation of the Cilk-5 multithreaded language (background), Work-Stealing Without The Baggage Yudi
Wed 24 Apr Reagents: Expressing and Composing Fine-grained Concurrency Ilya
Tue 30 Apr
12:30 in CC 351
Lime: a Java-compatible and synthesizable language for heterogeneous architectures, A compiler and runtime for heterogeneous computing (background) Dmitri
Wed 1 May No class (Workers' Day)
Wed 8 May Concurrent Programming Using Actors: Exploiting Large-Scale Parallelism (background), Scala Actors (background), Integrating task parallelism with actors Nosheen Zaza
Type systems
Wed 15 May Featherweight Java, Ch. 19 of Pierce (background), Featherweight Java (you may skim Sections 3 and 4 and the appendix) Amanj
Wed 22 May Agda (no paper) Ilya
Wed 29 May Program verification; Techniques for Program Verification (background, introduction only); This is Boogie 2 (background); no reviews due Nate

Policies

Credit

If you are taking the course for credit (3 ECTS), you must present at least one paper during the semester, possibly more depending on the class size. For each paper presented in the class, you must write a review of the paper. Reviews are due before the start of the class in which the paper is discussed.

Reviews

(Shamelessly stolen from Ken Birman's CS 6410 at Cornell.)

All students are required to read papers before class and to submit review. Reviews should be short, concise, and above all, critical. They should discuss the paper's strengths, weaknesses, and potential improvements or areas of future research. A review should be a few paragraphs long and should include:

  • A short summary of the paper, usually 3–4 sentences. What problem are they trying to solve? What is the main contribution of the paper? What did you find interesting? What are the essential principles underlying the work?
  • A few sentences describing the strengths of the paper.
  • A few sentences describing the weaknesses of the paper.
  • Questions you have, or future work directions you think should be followed.

See Matt Might's blog for advice on how to review papers for peer-review.

Presentations

Presentations should last about 45 minutes, if uninterrupted. You should present not only the paper itself, but also sufficient background material that an audience of non-experts can understand the paper. Some papers might be paired with other relevant papers to help put the paper in context. Presenters will also serve as discussion leaders, bringing up questions or issues that should discussed in more depth. You can intersperse these with a presentation of the paper itself, or save the discussion until the end.

Some advice: