Monday, September 27

Invited Talk (chair: Peter Dybjer, Chalmers University of Technology)

Session 1 (chair: Andres Löh, Utrecht University)

10:30 The Gentle Art of Levitation
Pierre-Evariste Dagand (University of Strathclyde); Conor McBride (University of Strathclyde); James Chapman (Institute of Cybernetics, Tallinn University of Technology); Peter Morris (University of Nottingham)
10:55 Functional Pearl: Every Bit Counts
Dimitrios Vytiniotis (Microsoft Research); Andrew Kennedy (Microsoft Research)
11:20 Break

Session 2 (chair: Olivier Danvy, University of Aarhus)

11:50 ReCaml: Execution State as the Cornerstone of Reconfigurations
Jérémy Buisson (UEB / Ecoles de St-Cyr Coetquidan / VALORIA); Fabien Dagnat (UEB / Institut Télécom / Télécom Bretagne)
12:15 Lolliproc: to Concurrency from Classical Linear Logic via Curry-Howard and Control
Karl Mazurak (University of Pennsylvania); Steve Zdancewic (University of Pennsylvania)
12:40 Lunch break

Session 3 (chair: Fritz Henglein, University of Copenhagen)

14:00 Abstracting Abstract Machines
David Van Horn (Northeastern University); Matthew Might (University of Utah)
14:25 Polyvariant Flow Analysis with Higher-ranked Polymorphic Types and Higher-order Effect Operators
Stefan Holdermans (Vector Fabrics); Jurriaan Hage (Utrecht University)
14:50 Break

Session 4 (chair: Simon Peyton Jones, Microsoft Research)

15:20 The Reduceron Reconfigured
Matthew Naylor (University of York); Colin Runciman (University of York)
15:45 Experience Report: Using Functional Programming within an Industrial Product Group: Perspectives and Perceptions
David Scott (Citrix Systems R&D); Richard Sharp (Citrix Systems R&D); Thomas Gazagnaire (INRIA); Anil Madhavapeddy (University of Cambridge)
16:05 Lazy Tree Splitting
Lars Bergstrom (University of Chicago); Matthew Fluet (Rochester Institute of Technology); Michael Rainey (University of Chicago); John Reppy (University of Chicago); Adam Shaw (University of Chicago)
16:30 Break

Session 5 (chair: Peter Thiemann, University of Freiburg)

17:00 Semantic Subtyping with an SMT Solver
Gavin Bierman (Microsoft Research); Andrew Gordon (Microsoft Research); Catalin Hritcu (Saarland University); David Langworthy (Microsoft Corporation)
17:25 Logical Types for Untyped Languages
Sam Tobin-Hochstadt (Northeastern University); Matthias Felleisen (Northeastern University)
17:50 PC chair's report
18:15 Finish

Tuesday, September 28

Invited Talk (chair: Stephanie Weirich, University of Pennsylvania)

9:00 TeachScheme! — A Checkpoint
Matthias Felleisen (Northeastern University)
10:00 Break

Session 6 (chair: Amal Ahmed, Indiana University)

10:30 Higher-order Representation of Substructural Logics
Karl Crary (Carnegie Mellon University)
10:55 The Impact of Higher-Order State and Control Effects on Local Relational Reasoning
Derek Dreyer (MPI-SWS); Georg Neis (MPI-SWS); Lars Birkedal (IT University of Copenhagen)
11:20 Break

Session 7 (chair: Michael Hicks, University of Maryland, College Park)

11:50 Distance Makes the Types Grow Stronger
Jason Reed (University of Pennsylvania); Benjamin Pierce (University of Pennsylvania)
12:15 Security-Typed Programming within Dependently-Typed Programming
Jamie Morgenstern (University of Chicago); Dan Licata (Carnegie Mellon University)
12:40 Lunch break

Session 8 (chair: James Cheney, University of Edinburgh)

14:00 Combining Syntactic and Semantic Bidirectionalization
Janis Voigtländer (University of Bonn); Zhenjiang Hu (National Institute of Informatics, Tokyo); Kazutaka Matsuda (Tohoku University, Sendai); Meng Wang (University of Oxford)
14:25 Matching Lenses: Alignment and View Update
Davi M. J. Barbosa (École Polytechnique); Julien Cretin (École Polytechnique); Nate Foster (Princeton University); Michael Greenberg (University of Pennsylvania); Benjamin C. Pierce (University of Pennsylvania)
14:50 Bidirectionalizing Graph Transformations
Soichiro Hidaka (National Institute of Informatics, Japan); Zhenjiang Hu (National Institute of Informatics, Japan); Kazuhiro Inaba (National Institute of Informatics, Japan); Hiroyuki Kato (National Institute of Informatics, Japan); Kazutaka Matsuda (Tohoku University, Japan); Keisuke Nakano (University of Electro-Communications, Japan)
15:15 Break

Session 9 (chair: Graham Hutton, University of Nottingham)

15:45 A Fresh Look at Programming with Names and Binders
Nicolas Pouillard (INRIA); François Pottier (INRIA)
16:10 Experience Report: Growing Programming Languages for Beginning Students
Marcus Crestani (University of Tübingen); Michael Sperber (DeinProgramm)
16:30 Fortifying Macros
Ryan Culpepper (Northeastern University); Matthias Felleisen (Northeastern University)
16:55 Break

Session 10, Awards and Announcements (chair: Robby Findler, Northwestern University)

17:25 ICFP 2011 Announcement
17:35 Most Influential ICFP'00 Paper Award
17:45 Report on the Thirteenth ICFP Programming Contest
18:30 Finish

Wednesday, September 29

Invited Talk (chair: Umut Acar, Max Planck Institute for Software Systems)

9:00 Functional Parallel Algorithms
Guy Blelloch (Carnegie Mellon University)
10:00 Break

Session 11 (chair: Zhenjiang Hu, National Institute of Informatics)

10:30 Specifying and Verifying Sparse Matrix Codes
Gilad Arnold (University of California, Berkeley); Johannes Hölzl (Technische Universität München); Ali Sinan Köksal (Ecole Polytechnique Fédérale de Lausanne); Rastislav Bodik (University of California, Berkeley); Mooly Sagiv (Tel-Aviv University and Stanford University)
10:55 Regular, Shape-polymorphic, Parallel Arrays in Haskell
Gabriele Keller (University of New South Wales); Manuel M. T. Chakravarty (University of New South Wales); Roman Leshchinskiy (University of New South Wales); Simon Peyton Jones (Microsoft Research Ltd); Ben Lippmeier (University of New South Wales)
11:20 Break

Session 12 (chair: James Hook, Portland State University)

11:50 A Certified Framework for Compiling and Executing Garbage-Collected Languages
Andrew McCreight (Portland State University); Tim Chevalier (Portland State University); Andrew Tolmach (Portland State University)
12:15 Total Parser Combinators
Nils Anders Danielsson (University of Nottingham)
12:40 Lunch break

Session 13 (chair: Andrew Tolmach, Portland State University)

14:00 Scrapping your Inefficient Engine: using Partial Evaluation to Improve Domain-Specific Language Implementation
Edwin Brady (University of St Andrews); Kevin Hammond (University of St Andrews)
14:25 Rethinking Supercompilation
Neil Mitchell
14:50 Break

Session 14 (chair: Matthieu Sozeau, Harvard University)

15:20 Program Verification Through Characteristic Formulae
Arthur Charguéraud (INRIA)
15:45 VeriML: Typed Computation of Logical Terms inside a Language with Effects
Antonis Stampoulis (Yale University); Zhong Shao (Yale University)
16:05 Parametricity and Dependent Types
Jean-Philippe Bernardy (Chalmers University of Technology and University of Gothenburg); Patrik Jansson (Chalmers University of Technology and University of Gothenburg); Ross Paterson (City University London)
16:35 Break

Session 15 (chair: Manuel Chakravarty, University of New South Wales)

17:05 A Play on Regular Expressions
Sebastian Fischer (University of Kiel); Frank Huch (University of Kiel); Thomas Wilke (University of Kiel)
17:30 Experience Report: Haskell as a Reagent
Iustin Pop (Google Inc)
17:50 Instance Chains: Type Class Programming Without Overlapping Instances
J. Garrett Morris (Portland State University); Mark P. Jones (Portland State University)
18:15 Closing