The abstracts are available [[InvitedTalks][here]], [[AcceptedPapers][here]], and [[SpecialFeature][here]]. -------++ Monday, January 18, 2010 ------+++ Chairs' Welcome: 9:00 - 9:05 ------+++ Invited Talk 1: 9:05 - 10:05 * Lennart Augustsson: O, Partial Evaluator, Where Art Thou? _Coffee break_ ------+++ Session 1: 10:30 - 11:30 (Java/Scala Types) Session Chair: Jeremy G. Siek (University of Colorado at Boulder) * Nabil el Boustani and Jurriaan Hage. Corrective Hints for Type Incorrect Generic Java Programs. * Johannes Rudolph and Peter Thiemann. Mnemonics: Type-safe Bytecode Generation at Run Time. _Coffee break_ ------+++ Session 2: 12:00 - 13:00 (Tools 1) Session Chair: Peter Thiemann (University of Freiburg) * Elvira Albert, Miguel Gomez-Zamalloa and German Puebla. PET: A Partial Evaluation-based Test Case Generation Tool for Java Bytecode. * Martin Hofmann. Igor II - an Analytical Inductive Functional Programming System. _Lunch_ ------+++ Session 3: 14:30 - 15:30 (Program Transformation) Session Chair: Elvira Albert (Complutense University of Madrid) * José Pedro Magalhăes, Stefan Holdermans, Johan Jeuring and Andres Löh. Optimizing Generics Is Easy! * Michele Baggi, María Alpuente, Demis Ballis and Moreno Falaschi. A Fold/Unfold Transformation Framework for Rewrite Theories extended to CCT. _Coffee break_ ------+++ Session 4: 16:00 - 17:00 (Termination) Session Chair: Stefan Holdermans (Utrecht University) * Hugh Anderson and Siau-Cheng Khoo. Regular Approximation and Bounded Domains for Size-Change Termination. * Évelyne Contejean, Pierre Courtieu, Julien Forest, Andrei Paskevich, Olivier Pons and Xavier Urbain. A3PAT, an Approach for Certified Automated Termination Proofs. _Break_ ------+++ Video Talk: 17:15 - 17:50 * Andy Gill, Garrin Kimmell and Kevin Matlage. Capturing Functions and Catching Satellites. -------++ Tuesday, January 19, 2010 ------+++ Invited Talk 2: 9:00 - 10:00 * Jeremy G. Siek. General Purpose Languages Should be Metalanguages. _Coffee break_ ------+++ Session 5: 10:30 - 11:30 (Innovative Programming) Session Chair: Nate Foster (University of Pennsylvania) * Fritz Henglein. Optimizing Relational Algebra Operations Using Generic Equivalence Discriminators and Lazy Products. * Adrian Riesco and Juan Rodriguez-Hortala. Programming with Singular and Plural Non-deterministic Functions. _Coffee break_ ------+++ Session 6: 12:00 - 13:00 (Synthesis and Compilation) Session Chair: Jurriaan Hage (Utrecht University) * Martin Hofmann and Emanuel Kitzelmann. I/O Guided Detection of List Catamorphisms. * Andrew Moss and Dan Page. Bridging the Gap Between Symbolic and Efficient AES Implementations. _Lunch_ ------+++ Session 7: 14:30 - 15:30 (Haskell Analysis/Transformation) Session Chair: German Puebla (Technical University of Madrid) * Christopher Brown and Simon Thompson. Clone Detection and Elimination for Haskell. * Stefan Holdermans and Jurriaan Hage. Making "Stricterness" More Relevant. _Coffee break_ ------+++ Session 8: 16:00 - 17:00 (Static Analysis Techniques) Session Chair: Fritz Henglein (University of Copenhagen) * Arun Lakhotia, Davidson Boccardo, Anshuman Singh and Aleardo Manacero Júnior. Context-Sensitive Analysis of Obfuscated x86 Executables. * Xin Li and Mizuhito Ogawa. Conditional Weighted Pushdown Systems and Applications. _Break_ ------+++ Session 9: 17:15 - 18:15 (Tools 2) Session Chair: Simon Thompson (University of Kent) * Ivan Lazar Miljenovic. The SourceGraph Program. * Florian Haftmann. From Higher-Order Logic to Haskell: There and Back Again.