Seminar: Grundlagen von Programmiersprachen

Leitung:Prof. Dr. Peter Thiemann
Mitwirkung:Luminous Fennell
Zeit und Ort:
Blockseminar: nach Vereinbarung
Vorbesprechung am Mi 24.5.2017, 14:00, Raum 079-00-019


  • Active participation in the seminar session
  • Hand-ins for the elaboration and the slides before the respective deadlines
  • Preparation and presentation of a 30-minute talk about the topic of the assigned paper
  • Preparation of a written elaboration of the topic of the assigned paper (15 pages, LaTeX, LNCS Style)

A seminar concentrates on scientific results, but it also teaches competences required for scientific work. In particular

  • literature research
  • reading and understanding of scientific texts
  • presentation skills
  • creating a written elaboration


  1. preliminary discussion with topic assignment: We, 24.5.2017
  2. hand in first version of elaboration: Mo, 26.6.2017
  3. hand in first version of slides: Mo, 3.7.2017
  4. hand in final versions of slides and elaboration: Mo, 24.7.2017
  5. presentation: Fr, 28.7.2017, 14-18 in SR 00-019, building 079


The elaboration should be 15 pages max. It must be prepared with

LaTeX, document class llncs.cls

Deadline for handing in the first version of the elaboration: 26.06.2017.


We prepared a list of papers from which participants can choose a topic for the seminar. Further information and recommendation will be given in the preliminary discussion, but we ask that you skimmed the papers already so that we can have an informed discussion.

  1. Test-case Generation and Bug-finding Through Symbolic Execution
  2. Symbolic Execution for Software Testing in Practice: Preliminary Assessment (informal background reading?)
  3. Type Inference for Static Compilation of JavaScript (language engineering)
  4. Automatic Vectorization for MATLAB (technical compiler paper)
  5. DSD-Crasher: A Hybrid Analysis Tool for Bug Finding
  6. Taming MATLAB (language engineering)
  7. Efficiently Implementing the Copy Semantics of MATLAB's Arrays in JavaScript (language engineering, technical)
  8. SAGE: Whitebox Fuzzing for Security Testing (informal background reading)
  9. MongoDB's JavaScript Fuzzer (informal background reading)
  10. LaCasa: Lightweight Affinity and Object Capabilities in Scala (language engineering, technical)
  11. A Symbolic Execution Framework for JavaScript (focus on security)
  12. MultiSE: Multi-path Symbolic Execution Using Value Summaries

Presentation Schedule, Friday, July 28, 2017

  • 14:00 DSD Crasher
  • 14:40 MultiSE: Multi-path Symbolic Execution Using Value Summaries
  • 15:20 Test-Case Generation and Bug-Finding Through Symbolic Execution
  • 16:00 Break
  • 16:20 Taming Matlab
  • 17:00 Theory: Alternating Büchi Automata