nd Preproceedings of the 22 Symposium on Implementation and Application of Functional Languages (IFL 2010) Jurriaan Hage (editor) Technical Report UU-CS-2010-020 August 2010 Department of Information and Computing Sciences Utrecht University, Utrecht, The Netherlands www.cs.uu.nl ISSN: 0924-3275 Department of Information and Computing Sciences Utrecht University P.O. Box 80.089 3508 TB Utrecht The Netherlands Preface The 22nd Symposium on Implementation and Application of Functional Languages (IFL 2010) takes place at Avifauna in Alphen aan den Rijn, the Netherlands from September 1 to 3, 2010. It signifiesthereturnofIFLtoEuropeafterafirstsuccessfulvisittotheUnitedStateswhereitwas hostedbySetonHallUniversityinSouthOrange,NewJersey. IFL2010ishostedbytheSoftware TechnologygroupofUtrechtUniversity’sDepartmentofInformationandComputingSciences. At thetimeofwriting,thesymposiumhad58registeredparticipantsfromBelgium,Brasil,Denmark, Estonia, France, Germany, Greece, Hungary, the Netherlands, Poland, Spain, Sweden, the United Kingdom and the United States of America. ThegoaloftheIFLsymposiaistobringtogetherresearchersactivelyengagedintheimplemen- tation and application of functional and function-based programming languages. It is a venue for researcherstopresentanddiscussnewideasandconcepts,worksinprogress,andpublication-ripe results. Following the IFL tradition, there is a post-symposium review process to produce formal proceedingswhichwillbepublishedbySpringerVerlagintheLectureNotesinComputerScience series. All participants in IFL 2010 were invited to submit either a draft paper or an extended abstractdescribingworktobepresentedatthesymposium. Thesubmissionswerescreenedbythe program committee chair to make sure they are within the scope of IFL. Submissions appearing in the draft proceedings are not peer-reviewed publications. After the symposium, authors have the opportunity to incorporate the feedback from discussions at the symposium into their paper andmaysubmitarevisedfullarticlefortheformalreviewprocess. Theserevisedsubmissionswill be reviewed by the program committee using prevailing academic standards. The IFL 2010 program consists of 39 presentations and one invited talk. The contributions in this volume are ordered according to the intended schedule of presentation (see overleaf). In order to make IFL 2010 as accessible as possible, we have not insisted on any particular style or length for the submissions. Such rules only apply to the version submitted for post-symposium reviewing. It is clear this year that concurrency and parallelism are very popular topics: there are three full sessions devoted to this topic, with the focus ranging from Software Transactional Memory to FPGAa and GPGPUs. Other topics are static analysis and type systems (two sessions), li- braries and DSLs (one session), semantics (one session), compilers (one session) and event and GUI programming (one session). Functional programming languages that are represented at the symposium include Clean, Erlang, F#, Haskell, Hume, JavaScript, SAC, Scheme/Racket, and Timber, with the majority of papers dealing with Haskell. As is usual for IFL, the program last three days with a social event and an invited talk. The invited talk will be given by Johan Nordlander of Luleøa University, who discusses the craft of building applications with Timber, a progamming language that claims to be purely functional, classicallyobject-orientedandinherentlyconcurrentatthesametime,whilealsofosteringapurely reactivemodelofinteractionthatnaturallyletsitsreal-timebehaviorbecontrolledbydeclaration. The social event takes place on September 2 and consists of two parts: a cultural part in the city of Utrecht and, in the evening, a buffet dinner during a boat trip through the waters of Zuid-Holland. We are grateful to many people for their help in preparating for IFL 2010. We were fortunate to use the portal of the UU Summer Schools; we thank in particular Marc Gebuis and Roos Nieuwenhuizen for their continuing support. Avifauna and in particular Marit van der Louw, Suzanne Oldenburg and Victor Galj´e helped us with the local planning. FromtheDepartmentofInformationandComputingSciences,DoaitseSwierstra,WilkeSchram, Marinus Veldhorst, Edith Stap, Frans Wiering, Geraldine Leebeek, Martijn Dekker and Corine Jolles have contributed to the organisation of IFL 2010. I want to thank in particular the PhD students who helped with all the preparations for IFL: Sean Leather, Jos´e Pedro Magalh˜aes and Jan Rochel. I want to thank the Programme Committee for accepting my invitation and helping me make some of the more important decisions. However, most of their work still awaits them. Special thanks are due to Marco Moraz´an, last year’s chair, for letting us build on his work, wisdom and experience. We gratefully ackowledge the financial support of the Department of Information and Com- puting Sciences. We were extremely happy to find that Microsoft Research was willing to sponsor IFL 2010, allowing us to decrease the student registration fees substantially. Finally, the grant we obtained from the Koninklijke Nederlandse Academie van Wetenschappen (KNAW) gave us further financial room to make IFL 2010 even more accessible to participants. Jurriaan Hage Symposium chair of IFL 2010 Sponsoring institutions ThesymposiumwassupportedbyMicrosoftResearch,theKoninklijkeNederlandseAcademievan Wetenschappen(KNAW)andthe DepartmentofInformationand ComputingSciencesof Utrecht University, the Netherlands. Organisation IFL 2010 was organised by members of the Software Technology group of the Department of Information and Computing Sciences of Utrecht University in the Netherlands. Executive committee Program and organisation chair: Jurriaan Hage Organising committee: Sean Leather Jos´e Pedro Magalh˜aes Jan Rochel Programme committee Jost Berthold University of Copenhagen Denmark Olaf Chitil University of Kent UK John Clements California Polytechnic State University USA Matthew Fluet Rochester Institute of Technology USA Andy Gill Kansas University USA Jurriaan Hage University of Utrecht Netherlands Bastiaan Heeren Open University of the Netherlands Netherlands Ralf Hinze University of Oxford UK John Hughes Chalmers University of Technology Sweden Yukiyoshi Kameyama University of Tsukuba Japan Gabriele Keller University of New South Wales Australia Pieter Koopman Radboud University Nijmegen Netherlands Luc Maranget INRIA France Simon Marlow Microsoft Research UK Marco T. Moraz´an Seton Hall University USA Rex Page University of Oklahoma USA Ricardo Pen˜a Universidad Complutense de Madrid Spain Sven-Bodo Scholz University of Hertfordshire UK Tom Schrijvers Catholic University of Leuven Belgium Don Stewart Galois USA Wouter Swierstra Vector Fabrics Netherlands Don Syme Microsoft UK Peter Thiemann University of Freiburg Germany Phil Trinder Heriott-Watt University Scotland Janis Voigtl¨ander University of Bonn Germany Vikt´oria Zs´ok E¨otv¨os Lor´and University Hungary Programme September 1, 2010 8.00 - 9.00 Registration 9.00 - 9.20 Welcome 9.20 - 10.40 Static Analysis I Session Chair: Tom Schrijvers 1. Size Invariants and Ranking Functions Synthesis in a Functional Language Ricardo Pen˜a and Agustin D. Delgado 2. Data-Driven Detection of Catamorphisms Towards Problem Specific Use of Program Schemes for Inductive Program Synthesis Martin Hofmann 3. Strictness Optimization for Higher-Order Functions in a Typed Intermediate Language Tom Lokhorst, Atze Dijkstra and Doaitse Swierstra 4. Untyped General Polymorphic Functions Martin Pettai 10.40 - 11.20 Break (adjacent room) 11.20 - 12.40 Events and Workflow Session Chair: Rex Page 1. The Usual Tasks: A Library for Ad-Hoc Work in iTasks Bas Lijnse, Rinus Plasmeijer and Erik Crombag 2. iTask as a new paradigm to building GUI applications Peter Achten, Rinus Plasmeijer and Steffen Michels 3. Multiple-Occurrence I/O Gergely Patai 4. Gin: Graphical iTask Notation Peter Achten, Jeroen Henrix and Rinus Plasmeijer 12.40 - 14.00 Lunch (adjacent room) 14.00 - 15.20 Compilers and Interpreters Session Chair: Bastiaan Heeren 1. Towards Dependently-Typed Attribute Grammars Arie Middelkoop, Atze Dijkstra and Doaitse Swierstra 2. Mapping Interpreters onto Runtime Support Stijn Timbermont 3. Hiding State in ClaSH Hardware Descriptions Marco Gerards, Christiaan Baaij, Jan Kuper and Matthijs Kooiman 4. Implementing a Non-Strict Purely Functional Language in JavaScript? Eddy Bruel and Jan Martin Jansen 15.20 - 16.00 Break (adjacent room) 16.00 - 17.40 Concurrency I Session Chair: Viktoria Zs´ok 1. Concurrent Non-Deferred Reference Counting on the Microgrid: First Experiences Stephan Herhut and Sven-Bodo Scholz 2. First Results from Auto-Parallelising SAC for GPGPUs Jing Guo, Sven-Bodo Scholz, Jeyarajan Thiyagalingam 3. Improving your CASH flow: the Computer Algebra SHell Christopher Brown, Kevin Hammond, Jost Berthold, Hans-Wolfgang Loidl 4. mHume for parallel FPGA Abdallah Al Zain, Wim Vanderbauwhede and Greg Michaelson 5. The Essence of Synchronisation in Asynchronous Data Flow Programming Clemens Grelck September 2, 2010 9.00 - 10.20 Concurrency II Session Chair: 1. An Executable Semantics for D-Clean Vikt´oria Zs´ok, Rinus Plasmeijer and Pieter Koopman 2. Dependency Graphs for Parallelizing Erlang Programs Melinda T´oth, Istv´an B´oz´o, Zolt´an Horv´ath and Atilla Erd¨odi 3. Counter Automata for Parameterised Timing Analysis of Box-Based Systems Christoph Herrmann and Kevin Hammond 4. Introducing the PilGRIM: a Pipelined Processor for Executing Lazy Functional Languages Arjan Boeijink, Jan Kuper and Philip H¨olzenspies 10.20 - 11.00 Break (adjacent room) 11.00 - 12.00 Invited Talk by Johan Nordlander: The craft of building with Timber Session Chair: Jurriaan Hage 12.00 - 13.30 Lunch (adjacent room) 14.00 - 23.30 Social Event September 3, 2010 9.00 - 10.40 Libraries and DSLs Session Chair: tba 1. A Database Coprocessor for Haskell Jeroen Weijers, Torsten Grust, George Giorgidze and Tom Schreiber 2. The Design and Implementation of Feldspar: an Embedded Language for Digital Signal Processing Mary Sheeran, Anders Persson, David Engdal, Josef Svenningsson and Koen Claessen 3. Combinators for Local Search In Haskell David Senington and David Duke 4. Modular Components with Monadic Effects Tom Schrijvers and Bruno Oliveira 5. Experiences using F# for developing analysis scripts and tools over search engine query log data Stefan Savev and Peter Bailey 10.40 - 11.20 Break (adjacent room) 11.20 - 12.40 Concurrency III Session Chair: tba 1. A Comparison of Lock-based and Lock-free Taskpool Implementations in Haskell Michael Lesniak 2. A high-level implementation of STM Haskell using the Transactional Locking II algorithm Andre Rauber Du Bois 3. Twilight in Haskell - Software Transactional Memory with Safe I/O and Typed Conflict Management Annette Bieniusa, Arie Middelkoop and Peter Thiemann 4. Towards Orthogonal Haskell Data Serialisation Jost Berthold 12.40 - 14.00 Lunch (adjacent room) 14.00 - 15.20 Semantics Session Chair: tba 1. From Bayesian Notation to Pure Racket, via Discrete Measure-Theoretic Probability in Lambda-ZFC Neil Toronto and Jay McCarthy 2. On the relation of call-by-need and call-by-name in a natural semantics Lidia S´anchez-Gil, Mercedes Hidalgo Herrero and Yolanda Ortega Mall´en 3. Automating Derivations of Abstract Machines from Reduction Semantics: A Generic Formalization of Refocusing in Coq Dariusz Biernacki, Filip Sieczkowski and Malgorzata Biernacka 4. Towards Strategies for Dataflow Programming Joaquin Aguado and Michael Mendler 15.20 - 16.00 Break (adjacent room) 16.00 - 17.40 Static Analysis II Session Chair: Janis Voigtl¨ander 1. Extensible Pattern Matching in an Extensible Language Sam Tobin-Hochstadt 2. Where are you going with those types? Vincent St-Amour, Matthias Felleisen, Matthew Flatt, Sam Tobin-Hochstadt 3. Purity in Erlang Mihalis Pitidis and Konstantinos Sagonas 4. Theory, Practice and Pragmatics of Fusion Thomas Harper, Daniel James, and Ralf Hinze 5. Composing Reactive GUIs in F# with WebSharper Joel Bj¨ornson, Anton Tayanovskyy and Adam Granicz
Description: