Eberhard Karls Universität Tübingen

Mathematisch-Naturwissenschaftliche FakultätProgramming Languages and Software Technology

Paper Reading Group

Welcome to the web page of the Paper Reading Group organized by the PS working group.

Place: Room B217/218

Time: every Wednesday, 14:00-15:00, unless announced otherwise.

Organizer: Philipp Schuster.

How does our PRG work?

We read and discuss one paper per meeting. One participant (the discussion leader) will give a short summary and raise a few points for discussion, but every participant is expected to read the paper beforehand.

Guests are always welcome!

To be notified about upcoming meetings, please subscribe to our mailing list via this web interface.

The schedule below for discussion leaders is tentative, beyond the next week.

For topics of high significance and technical depth, we might devote two meetings.

The role of discussion leader rotates among participants.

Feel free to propose candidates for future meetings by contacting Philipp. Modifying this webpage directly will not work reliably, as its content is auto-generated.

The PRG is also open to motivated students—see the LSF description.

Next meetings

August 10, 2017

The Duality of Construction. Paul Downen and Zena M. Ariola. Proc. of Proceedings of the 23rd European Symposium on Programming Languages and Systems - Volume 8410: 249—269 (2014)

Discussion Leader: Philipp

August 17, 2017

To determine.

Discussion Leader: Julian

August 24, 2017

To determine.

Discussion Leader: Jona

August 31, 2017

To determine.

Discussion Leader: Klaus

September 7, 2017

To determine.

Discussion Leader: Philipp

Previous meetings

July 13, 2017

Classes and Mixins. Matthew Flatt, Shriram Krishnamurthi and Matthias Felleisen. Proc. of POPL: 171—183 (1998)

Discussion Leader: Klaus

June 8, 2017

Introducing a Calculus of Effects and Handlers for Natural Language Semantics. Jirka Marčík and Maxime Amblard. Proc. of Formal Grammar : 20th and 21st International Conferences, FG 2015, Barcelona, Spain, August 2015, Revised Selected Papers. FG 2016, Bozen, Italy, August 2016, Proceedings: 257—272 (2016)

Discussion Leader: Jona

June 1, 2017

Feature-Oriented Programming with Object Algebras. Bruno C. d. S. Oliveira, Tijs van der Storm, Alex Loh and William R. Cook. Proc. of ECOOP: 27—51 (2013)

Discussion Leader: Julian

May 18, 2017

Shift to control. Chung-chieh Shan. Proc. of Scheme Workshop: 99—107 (2004)

Discussion Leader: Philipp

May 3, 2017

Generalizing Inference Systems by Coaxioms. Davide Ancona, Francesco Dagnino and Elena Zucca. Proc. of ESOP: 29—55 (2017)

Discussion Leader: Klaus

April 5, 2017

Objects and Classes, Co-algebraically. Bart Jacobs. Proc. of Object Orientation with Parallelism and Persistence: 83—103 (1996)

Discussion Leader: Jona

March 29, 2017

The expression lemma. Ralf Lämmel and Ondrej Rypacek. Proc. of MPC (2008)

Discussion Leader: Julian

March 22, 2017

Halide: A Language and Compiler for Optimizing Parallelism, Locality, and Recomputation in Image Processing Pipelines. Jonathan Ragan-Kelley, Connelly Barnes, Andrew Adams, Sylvain Paris, Frédo Durand and Saman Amarasinghe. Proc. of PLDI: 519—530 (2013)

Discussion Leader: Theo

March 1, 2017

Do Be Do Be Do. Sam Lindley, Conor McBride and Craig McLaughlin. Proc. of POPL: 500—514 (2017)

Discussion Leader: Philipp

February 15, 2017

Staging Generic Programming. Jeremy Yallop. Proc. of PEPM: 85—96 (2016)

Discussion Leader: Jona

February 8, 2017

Farms, Pipes, Streams and Reforestation: Reasoning About Structured Parallel Processes Using Types and Hylomorphisms. David Castro, Kevin Hammond and Susmit Sarkar. Proc. of ICFP: 4—17 (2016)

Discussion Leader: Klaus

February 1, 2017

Focusing on Pattern Matching. Neelakantan R. Krishnaswami. Proc. of POPL: 366—378 (2009)

Discussion Leader: Julian

January 25, 2017

Beta Reduction is Invariant, Indeed. Beniamino Accattoli and Ugo Dal Lago. Proc. of CSL-LICS (2014)

Discussion Leader: Philipp

January 18, 2017

Generating Performance Portable Code Using Rewrite Rules: From High-level Functional Expressions to High-performance OpenCL Code. Michel Steuwer, Christian Fensch, Sam Lindley and Christophe Dubach. Proc. of ICFP: 205—217 (2015)

Discussion Leader: Theo

December 14, 2016

Stream Fusion, to Completenes. Smaragdakis Kiselyov, Biboudis, Palladinos. Proc. of POPL (2017)

Discussion Leader: Jona

December 7, 2016

seL4: Formal Verification of an OS Kernel. Gerwin Klein, Kevin Elphinstone, Gernot Heiser, June Andronick, David Cock, Philip Derrin, Dhammika Elkaduwe, Kai Engelhardt, Rafal Kolanski, Michael Norrish, Thomas Sewell, Harvey Tuch and Simon Winwood. Proc. of SOSP: 207—220 (2009)

Discussion Leader: Tillmann

November 30, 2016

DART: Directed Automated Random Testing. Patrice Godefroid, Nils Klarlund and Koushik Sen. Proc. of PLDI: 213—223 (2005)

Discussion Leader: Klaus

November 16, 2016

Difficulties in Learning Inheritance and Polymorphism. Neomi Liberman, Catriel Beeri and Yifat Ben-David Kolikant. ACM TOCE (Transactions on Computing Education) 11(1) (2011)

Discussion Leader: Julian

November 7, 2016

Oh Lord, Please Don't Let Contracts Be Misunderstood (Functional Pearl). Christos Dimoulas, Max S. New, Robert Bruce Findler and Matthias Felleisen. Proc. of ICFP: 117—131 (2016)

Discussion Leader: Philipp

October 24, 2016

A Virtual Class Calculus (Extended Version). Erik Ernst, Klaus Ostermann and William R. Cook. Proc. of POPL: 270—282 (2006)

Discussion Leader: Jona

October 17, 2016

The Constrained-monad Problem. Neil Sculthorpe, Jan Bracker, George Giorgidze and Andy Gill. Proc. of ICFP: 287—298 (2013)

Discussion Leader: Cai

October 10, 2016

Does Homotopy Type Theory Provide a Foundation for Mathematics?. James Ladyman and Stuart Presnell. The British Journal for the Philosophy of Science (2016)

Discussion Leader: Tillmann

September 26, 2016

The Essence of Multi-stage Evaluation in LMS. Tiark Rompf. In: A List of Successes That Can Change the World: Essays Dedicated to Philip Wadler on the Occasion of His 60th Birthday: 318—335 (2016)

Discussion Leader: Paolo

September 19, 2016

Can Programming Be Liberated from the Von Neumann Style? A Functional Style and Its Algebra of Programs. John Backus. Commun. ACM 21(8): 613—641 (1978)

Discussion Leader: Klaus

July 18, 2016

Mini-languages: a way to learn programming principles. Peter Brusilovsky, Eduardo Calabrese, Jozef Hvorecky, Anatoly Kouchnirenko and Philip Miller. Education and Information Technologies 2(1): 65—83 (1997)

Discussion Leader: Julian

July 11, 2016

Complete and Decidable Type Inference for GADTs. Tom Schrijvers, Simon Peyton Jones, Martin Sulzmann and Dimitrios Vytiniotis. Proc. of ICFP: 341—352 (2009)

Discussion Leader: Julia

This link has a version later than the proceedings, so please use this.

July 4, 2016

Types As Intervals. Robert Cartwright. Proc. of POPL: 22—36 (1985)

Discussion Leader: Cai

June 27, 2016

Arrows, Robots, and Functional Reactive Programming. Paul Hudak, Antony Courtney, Henrik Nilsson and John Peterson. In: Advanced Functional Programming (AFP): 4th International School, 2002. Revised Lectures: 159—187 (2003)

Discussion Leader: Jona

June 6, 2016

The Essence of Dependent Object Types. Nada Amin, Karl Samuel Grütter, Martin Odersky, Tiark Rompf and Sandro Stucki. Proc. of WadlerFest (2016)

Discussion Leader: Paolo

May 23, 2016

Everything Old is New Again: Quoted Domain-specific Languages. Shayan Najd, Sam Lindley, Josef Svenningsson and Philip Wadler. Proc. of PEPM: 25—36 (2016)

Discussion Leader: Tillmann

May 9, 2016

The Design and Implementation of a Verification Technique for GPU Kernels. Adam Betts, Nathan Chong, Alastair F. Donaldson, Jeroen Ketema, Shaz Qadeer, Paul Thomson and John Wickerson. ACM Trans. Program. Lang. Syst. 37(3) (2015)

Discussion Leader: Klaus

We'll discuss Sec. 2+3 only (14 pages).

March 16, 2016

Evaluation of Games for Teaching Computer Science. Ben Gibson and Tim Bell. Proc. of 8th Workshop in Primary and Secondary Computing Education: 51—60 (2013)

Discussion Leader: Julian

March 9, 2016

Lightweight implementations of probabilistic programming languages via transformational compilation. David Wingate, Andreas Stuhlmueller and Noah D. Goodman. Proc. of International Conference on Artificial Intelligence and Statistics: 770—778 (2011)

Discussion Leader: Cai

March 2, 2016

Guarded Recursive Datatype Constructors. Hongwei Xi, Chiyan Chen and Gang Chen. Proc. of POPL: 224—235 (2003)

Discussion Leader: Julia

February 17, 2016

Modularity and Implementation of Mathematical Operational Semantics. Mauro Jaskelioff, Neil Ghani and Graham Hutton. Proc. of Mathematically Structured Functional Programming (2008)

Discussion Leader: Jona

February 10, 2016

Freer Monads, More Extensible Effects. Oleg Kiselyov and Hiromi Ishii. Proc. of Haskell Symposium: 94—105 (2015)

Discussion Leader: Paolo

January 27, 2016

Managing the development of large software systems: Concepts and techniques. W. W. Royce. Proc. of Technical Papers of Western Electronic Show and Convention (WesCon) (1970)

Discussion Leader: Tillmann

This paper introduced the waterfall model of software development.

January 20, 2016

Copy and Paste Redeemed. Krishna Narasimhan and Christoph Reichenbach. Proc. of ASE (2015)

Discussion Leader: Klaus

December 16, 2015

Stochastic Lambda Calculus and Monads of Probability Distributions. Norman Ramsey and Avi Pfeffer. Proc. of POPL: 154—165 (2002)

Discussion Leader: Cai

December 9, 2015

Polymorphic Typed Defunctionalization. François Pottier and Nadji Gauthier. Proc. of POPL: 89—98 (2004)

Discussion Leader: Julia

November 25, 2015

Functional Programming with Structured Graphs. Bruno C.d.S. Oliveira and William R. Cook. Proc. of ICFP: 77—88 (2012)

Discussion Leader: Jona

November 18, 2015

F-ing Modules. Andreas Rossberg, Claudio V. Russo and Derek Dreyer. Proc. of TLDI: 89—102 (2010)

Discussion Leader: Paolo

November 4, 2015

Monad Transformers and Modular Interpreters. Sheng Liang, Paul Hudak and Mark Jones. Proc. of POPL: 333—343 (1995)

Discussion Leader: Jona

October 28, 2015

A dissection of L. Arnaud Spiwack (2014)

Discussion Leader: Tillmann

We will skip Sec. 5.

October 21, 2015

Resource-Safe Systems Programming with Embedded Domain Specific Languages. Edwin Brady and Kevin Hammond. Proc. of PADL: 242—257 (2012)

Discussion Leader: Cai

October 14, 2015

Semantics of context-free languages. Donald E. Knuth. Mathematical systems theory 2(2): 127—145 (1968)

Discussion Leader: Klaus

October 5, 2015

Monads for Functional Programming. Philip Wadler. Proc. of Advanced Functional Programming, Spring School: 24—52 (1995)

Discussion Leader: Julia

September 28, 2015

Cross-Language Code Analysis and Refactoring. P. Mayer and A. Schroeder. Proc. of Source Code Analysis and Manipulation (SCAM): 94—103 (2012)

Discussion Leader: Matthias

September 21, 2015

Selective Memoization. Umut A. Acar, Guy E. Blelloch and Robert Harper. Proc. of POPL: 14—25 (2003)

Discussion Leader: Paolo

July 20, 2015

Packrat Parsers Can Support Left Recursion. Alessandro Warth, James R. Douglass and Todd Millstein. Proc. of PEPM: 103—110 (2008)

Discussion Leader: Jona

July 13, 2015

Combinators for Bi-directional Tree Transformations: A Linguistic Approach to the View Update Problem. J. Nathan Foster, Michael B. Greenwald, Jonathan T. Moore, Benjamin C. Pierce and Alan Schmitt. Proc. of POPL: 233—246 (2005)

Discussion Leader: Tillmann

June 29, 2015

To CNF or not to CNF? An efficient yet presentable version of the CYK algorithm. Martin Lange and Hans Leiß. Informatica Didactica 8: 2008—2010 (2009)

Discussion Leader: Cai

June 22, 2015

Embedded Probabilistic Programming. Oleg Kiselyov and Chung-Chieh Shan. Proc. of IFIP TC 2 Working Conference on Domain-Specific Languages: 360—384 (2009)

Discussion Leader: Klaus

Additional resources available at http://okmij.org/ftp/kakuritu/.

June 15, 2015

An Empirical Study of Regression Testing Techniques Incorporating Context and Lifetime Factors and Improved Cost-benefit Models. Hyunsook Do and Gregg Rothermel. Proc. of 14th ACM SIGSOFT International Symposium on Foundations of Software Engineering: 141—151 (2006)

Discussion Leader: Matthias

June 8, 2015

Towards a theory of type structure. John C. Reynolds. Proc. of Programming Symposium: 408—425 (1974)

Discussion Leader: Julia

This is the paper that introduced System F.

May 18, 2015

A Generic Account of Continuation-passing Styles. John Hatcliff and Olivier Danvy. Proc. of POPL: 458—471 (1994)

Discussion Leader: Paolo

May 11, 2015

A Denotational Semantics of Inheritance and Its Correctness. W. Cook and J. Palsberg. Proc. of OOPSLA: 433—443 (1989)

Discussion Leader: Jona

May 4, 2015

Pattern matching without K. Jesper Cockx, Dominique Devriese and Frank Piessens. Proc. of ICFP: 257—268 (2014)

Discussion Leader: Tillmann

You should jump over Sec. 3 (the correctness proof) if you get stuck.

April 27, 2015

Polytypic values possess polykinded types. Ralf Hinze. Proc. of Mathematics of Program Construction: 2—27 (2000)

Discussion Leader: Cai

We will read sections 1–5. Timeslot: 16:00-17:00.

April 13, 2015

Subject-oriented Programming: A Critique of Pure Objects. William Harrison and Harold Ossher. Proc. of OOPSLA: 411—428 (1993)

Discussion Leader: Klaus

We will only discuss sections 1-6. Timeslot: 15:00-16:00.

March 25, 2015

Points-to Analysis in Almost Linear Time. Bjarne Steensgaard. Proc. of POPL: 32—41 (1996)

Discussion Leader: Matthias

March 18, 2015

Codatatypes in ML. Tatsuya Hagino. Journal of Symbolic Computation 8(6): 629—650 (1989)

Discussion Leader: Julia

March 11, 2015

Comparing object encodings. Kim B. Bruce, Luca Cardelli and Benjamin C. Pierce. Proc. of Theoretical Aspects of Computer Software: 415—438 (1997)

Discussion Leader: Jona

March 4, 2015

On the criteria to be used in decomposing systems into modules. David L. Parnas. Commun. ACM 15(12): 1053—1058 (1972)

Discussion Leader: Tillmann

February 25, 2015

The Essence of the Iterator Pattern. Jeremy Gibbons and Bruno C. d. S. Oliveira. J. Funct. Program. 19(3-4): 377—402 (2009)

Discussion Leader: Cai

February 18, 2015

Local Reasoning about Programs that Alter Data Structures. Peter O'Hearn, John Reynolds and Hongseok Yang. Proc. of Workshop on Computer Science Logic: 1—19 (2001)

Discussion Leader: Paolo

This is the paper that introduced separation logic, a very influential and useful variant of Hoare logic.

February 11, 2015

An axiomatic basis for computer programming. C. A. R. Hoare. Commun. ACM 12(10): 576—580 (1969)

Discussion Leader: Klaus

This is the paper that introduced Hoare logic.