The 12Th ICFP Programming Contest Award Ceremony and Contest Report

Total Page:16

File Type:pdf, Size:1020Kb

The 12Th ICFP Programming Contest Award Ceremony and Contest Report The 12th ICFP Programming Contest Award Ceremony and Contest Report Andy Gill, Garrin Kimmell, Kevin Matlage, Tristan Bull, Nicolas Frisby, Michael Jantz, Ed Komp, Megan Peck, Wesley Peck, Mark Snyder, Brett Werling, The Information and Telecommunication Technology Center The University of Kansas September 1, 2009 Good News! NASA1 were so impressed with the mars rover solution from the 2008 ICFP Programming Contest, they have solicited help in 2009 with cleaning up some wayward satellites in space. Unfortunately, because of a misunderstanding of last years results, they require the solution to be written in . TEX. After explaining that the solution in TEX was an oversight and not intentional, NASA will accept solutions in any language. 1Not A Space Agency, not to be confused with NASA What is the ICFP Programming Contest? A true programming contest. Problem is set; solution is required within 3 days. Running for 12 years now. Large { Over 300 teams submitted a solution last year. International { Because solutions are submitted online, teams can work from anywhere. Fun! History of Contest Pousse Optimize Ray tracer case statements Optimize XML Robots playing a Robots driving a car Sokoban-like game Ant colony Cops & Robbers UMIX Executing DNA Control a mars rover ? What Happened this Year? Problem statement downloaded over 3000 times. Over 850 teams registered. Over 300 teams submitted a working solution. Forgotten password page accessed over 500 times. Over 8000 individual \solutionlets" submitted and evaluated. Local businesses started reporting lack of productivity on Friday afternoon. Reporter from local paper interviewed team. Requirements of a Good Contest Wanted to be a real programming contest Solution in any language/environment/os. Wanted to make evaluations of solutions feasible. Wanted to give realtime feedback A leader board, perhaps? Fun, visual problem. Want contest to be for everyone, not just the winners. Avoid domain knowledge advantage. Problem Statement You are to help program a satellite to clean up the skies of debris. There are three training missions, then Operation Clear Skies. Good luck! First Problem: Hohmann Transfer The Hohmann problem requires the controller to transfer the satellite, initially in a circular orbit around earth, into a different circular orbit. To successfully complete this task, the satellite must remain in within 1km of the target orbit radius for 900 seconds. Meet and Greet (Problems 2 & 3) In Meet and Greet, the contestant must move a satellite in a circular orbit about earth to meet with a second satellite, also in a circular orbit. The target satellite will maintain its orbit throughout the simulation. Eccentric Meet and Greet: This problem generalizes the Meet and Greet problem. The task is still to move the satellite from one orbit to meet with a target satellite. However, the orbits of both satellites can be arbitrary ellipses. Operation Clear Skies The challenge of the Operation Clear Skies problem is to control the satellite so that it visits a collection of eleven target satellites, each of which are in an elliptical orbit around earth. Because the Operation Clear Skies problem may require a large number of orbit transfer maneuvers, there will be a special refueling station in orbit. Logistics of Moving Satellites in Space KU supplied 4 \binaries", one for each problem. We also provided specification of small virtual machine, to run these binaries. Contestants write the VM, and interact with virtual actuators, to fire rockets, and virtual sensors, to detect location in orbit. Contestants upload an audit trail of what actuator fires when. We replay these on our local VM, and validate the score, and update a leader board. At the end of the contest, teams upload their source files. Only looking at top 10, to determine the winners. Our VM Instruction Semantics Add r1 r2 mem[rd ] mem[r1] + mem[r2] Sub r1 r2 mem[rd ] mem[r1] - mem[r2] Mult r1 r2 mem[rd ] mem[r1] * mem[r2] Div r1 r2 if mem[r2] = 0.0 then mem[rd ] 0:0 else mem[rd ] mem[r1] / mem[r2] Output r1 r2 outport[r1] mem[r2] Phi r1 r2 if status = '1' then mem[rd ] mem[r1] else mem[rd ] mem[r2] Noop mem[rd ] mem[rd ] Cmpz imm r1 status mem[r1] op 0:0 p Sqrt r1 mem[rd ] mem[r1] Copy r1 mem[rd ] mem[r1] Input r1 mem[rd ] inport[r1] Executing the VM: GOTO Considered Unnecessary Set up input[:::] Address Value Instruction ... ... ... 80 102.23 Phi 77 78 81 3248.32 Mul 76 80 82 231.23 Div 81 75 83 23.23 Mul 52 82 84 1.0 Div 0 0 85 1.0 Mul 84 84 86 92.23 Div 85 15 87 2142.50 Mul 83 86 88 2389.23 Copy 394 ... ... ... Read from output[:::] Our VM in C void step() { for(pc = 0;pc < pcmax;pc++) { switch((insts[pc] & 0xF0000000) >> 28) { case 0: switch((insts[pc] >> 24) & 0xf) { case 0: break; case 1: switch((insts[pc] >> 21) & 0x7) { case 0: mode = regs[insts[pc] & 0x3fff] < 0; break; case 1: mode = regs[insts[pc] & 0x3fff] <= 0; break; case 2: mode = regs[insts[pc] & 0x3fff] == 0; break; case 3: mode = regs[insts[pc] & 0x3fff] >= 0; break; case 4: mode = regs[insts[pc] & 0x3fff] > 0; break; } break; case 2: regs[pc] = sqrt(regs[insts[pc] & 0x3fff]); break; case 3: regs[pc] = regs[insts[pc] & 0x3fff]; break; case 4: regs[pc] = input[insts[pc] & 0x3fff]; break; } break; case 1: regs[pc] = regs[(insts[pc] >> 14) & 0x3fff] + regs[insts[pc] & 0x3fff]; break; case 2: regs[pc] = regs[(insts[pc] >> 14) & 0x3fff] - regs[insts[pc] & 0x3fff]; break; case 3: regs[pc] = regs[(insts[pc] >> 14) & 0x3fff] * regs[insts[pc] & 0x3fff]; break; case 4: regs[pc] = (regs[insts[pc] & 0x3fff] == 0) ? 0 : regs[(insts[pc] >> 14) & 0x3fff] / regs[insts[pc] & 0x3fff]; break; case 5: output[(insts[pc] >> 14) & 0x3fff] = regs[insts[pc] & 0x3fff]; break; case 6: regs[pc] = (mode == 1) ? regs[(insts[pc] >> 14) & 0x3fff] : regs[insts[pc] & 0x3fff]; break; } } } Our Fast VM: Generated C All instructions always write to the same location. ... r_80 = (code == 0) ? r_77 : r_78; r_81 = r_76 * r_80; r_82 = (r_75 == 0) ? 0 : (r_81 / r_75); r_83 = r_52 * r_82; r_84 = (r_0 == 0) ? 0 : (r_0 / r_0); r_85 = r_84 * r_84; r_86 = (r_15 == 0) ? 0 : (r_85 / r_15); r_87 = r_83 * r_86; r_88 = r_394; ... Interaction: I/O Ports Input port address Actuator 0x2 ∆Vx 0x3 ∆Vy 0x3E80 Configuration Actuator input ports Output port address Sensor 0x0 Score 0x1 Fuel Remaining 0x2 sx relative to earth 0x3 sy relative to earth 0x4 Target orbit radius Hohmann Problem sensor output ports Leader Board (with several hours to go) Hints and Clues (from FAQ) Q. Will there be a teaser this year too that tells something about the contest task in a cryptic way but you can't really infer anything from it until the task is out, such as the ants image in 2004 or the codex in 2006? A: There already are a number of teasers The Clues Countdown was in standard NASA format: T-4H00M02S Competition started at 13:00:16 If you google "13:00:16 space shuttle", you can find that the first Mir docking mission docked at June 29, 1995, 13:00:16 UTC. Outside Photo was example of a bad orbit. Guesses about clues <MikePavone> I've been wondering if the positions of the organizers in the photo has any significance <rjsimmon> ? go on... <MikePavone> There positions almost suggest 3 6-bit binary numbers <parbo> If the english alphabet is zero-indexed, 13:00:16 becomes QAN <parbo> Sounds like http://en.wikipedia.org/wiki/Koan <astsmtl> stop it, you can't infer anything about contest fron teasers <parbo> no, but is still fun <astsmtl> hmm, yes :) <parbo> I bet the organizers are laughing their asses off at our false guesses Our reward for these teasers 5:05 PM, the night before the contest starts. Both ITTC sys admins walk into the lab. Dead pan faces. \We need to rebuild the disk that the ITTC web server is hosted on tomorrow morning, and we are not 100% sure when it will come back online". main = do putStrLn "You are joking, right?" putStrLn "No, we've detected an anomaly with the disk," putStrLn "and it will fail soon" main Web Site Usage Solving Problems: Best Score Total Number of Problems Solved by How Many Teams Languages Used 32% C 25% C++ 19% Python 17% Java ... ... 15% Shell 2 teams Scala 13% Haskell 2 teams PHP 6% ML 1 team Excel 5% Ruby 0 teams T X 5% Perl E 4% Lisp 3% MATLAB ... ... Team Names I C Frantic People Side Effects May Include... Cult of the Bound Variable when i was 4 years old i was maimed by a giant pig Error 404 The Al-Gore-Rhythms The Church of the Least Fixed Point Drunk In Charge of an Orbital Vehicle SpaceGarbageCollector README { Big Sky Problems Here I don't even try to compute orbits anymore, just firing my actuators randomly and see if we would get lucky. I waited a few hours for the experiment to run and found that I wasn't lucky... README { honesty Run "make" in a directory with the orbital binary files (*.obf) to generate Lisp and Forth input VM configurations. After that, it's all very interactive and half-assed. README { insanity This is the implemenation for team OneDayPastDue. OneDayPastDue gets its name from my unborn son, who at the start of the contest was one day past his due date. Many thanks go to my wife who tolerates me staying up almost all night when she could have given birth at any moment. (Incidentally, she went into labor about 2am last night.) README { formulaic 1.
Recommended publications
  • Functional Programming at Facebook
    Functional Programming at Facebook Chris Piro, Eugene Letuchy Commercial Users of Functional Programming (CUFP) Edinburgh, Scotland ! September "##$ Agenda ! Facebook and Chat " Chat architecture # Erlang strengths $ Setbacks % What has worked Facebook The Facebook Environment The Facebook Environment ▪ The web site ▪ More than 250 million active users ▪ More than 3.5 billion minutes are spent on Facebook each day The Facebook Environment ▪ The web site ▪ More than 250 million active users ▪ More than 3.5 billion minutes are spent on Facebook each day ▪ The engineering team ▪ Fast iteration: code gets out to production within a week ▪ Polyglot programming: interoperability with Thrift ▪ Practical: high-leverage tools win Using FP at Facebook Using FP at Facebook ▪ Erlang ▪ Chat backend (channel servers) ▪ Chat Jabber interface (ejabberd) ▪ AIM presence: a JSONP validator Using FP at Facebook ▪ Erlang ▪ Chat backend (channel servers) ▪ Chat Jabber interface (ejabberd) ▪ AIM presence: a JSONP validator ▪ Haskell ▪ lex-pass: PHP parse transforms ▪ Lambdabot ▪ textbook: command line Facebook API client ▪ Thrift binding Thrift Thrift ▪ An efficient, cross-language serialization and RPC framework Thrift ▪ An efficient, cross-language serialization and RPC framework ▪ Write interoperable servers and clients Thrift ▪ An efficient, cross-language serialization and RPC framework ▪ Write interoperable servers and clients ▪ Includes library and code generator for each language Thrift ▪ An efficient, cross-language serialization and RPC framework ▪ Write
    [Show full text]
  • The Third Annual ICFP Programming Contest
    The Third Annual ICFP Programming Contest August 26 – 29, 2000 (Version 1.18) 1 The problem This year’s ICFP programming challenge is to implement a ray tracer. The input to the ray tracer is a scene description written in a simple functional language, called GML. Execution of a GML program produces zero, or more, image files, which are in PPM format. A web page of sample images, along with the GML inputs that were used to produce them, is linked off of the contest home page. The feature set of GML is organized into three tiers. Submissions must implement the first tier of features and extra credit will be given to submissions that implement the second or third tiers. Submissions will be evaluated on three scales: correctness of the produced images, run-time performance, and the tier of implemented GML features. GML has primitives for defining simple geometric objects (e.g., planes, spheres, and cubes) and lighting sources. The surface properties used to render the objects are specified as functions in GML itself. In addition to supporting scene description, GML also has a render operator that renders a scene to an image file. For each pixel in the output image, the render command must compute a color. Conceptually, this color is computed by tracing the path of the light backwards from the eye of the viewer, to where it bounced off an object, and ultimately back to the light sources. This document is organized as follows. Section 2 describes the syntax and general semantics of the modeling language. It is followed by Section 3, which describes those aspects of the language that are specific to ray tracing.
    [Show full text]
  • ICFP Programming Contest 2010 International Cars and Fuels Production
    About Contest Task Running the Contest Background Winners Future ICFP Programming Contest 2010 International Cars and Fuels Production Bertram Felgenhauer, University of Innsbruck, Austria Johannes Waldmann, HTWK Leipzig, Germany June 18–21, 2010 Felgenhauer, Waldmann ICFP Programming Contest 2010 1/31 About Contest Task Running the Contest Background Winners Future About the ICFP Programming Contest programming, problem solving, fun annual contest, since 1998 sponsored by ICFP conference/ACM 2010 contest hosted by HTWK Leipzig, Germany contest format 72 hours (June 18, 12:00 – June 21, 12:00 GMT) participation online, international teams allowed no fixed programming language lightning division (first 24 hours) Felgenhauer, Waldmann ICFP Programming Contest 2010 2/31 earn money by (efficiently) solving instances, or creating instances (with solution, which is hard to find) income tax (devaluates earnings by 1/2 per day) About Contest Task Running the Contest Background Winners Future Contest Task storyline: market for cars (= problem instance) (public) fuels (= problem solution) (private) Felgenhauer, Waldmann ICFP Programming Contest 2010 3/31 About Contest Task Running the Contest Background Winners Future Contest Task storyline: market for cars (= problem instance) (public) fuels (= problem solution) (private) earn money by (efficiently) solving instances, or creating instances (with solution, which is hard to find) income tax (devaluates earnings by 1/2 per day) Felgenhauer, Waldmann ICFP Programming Contest 2010 3/31 About Contest Task
    [Show full text]
  • ICFP 2009 Final Program
    ICFP 2009 Final Program Monday, August 31, 2009 Tuesday, September 1, 2009 Wednesday, September 2, 2009 Invited Talk (Chair: Andrew Tolmach) Invited Talk (Chair: Graham Hutton) Invited Talk (Chair: Lennart Augustsson) 9:00 Organizing Functional Code for Parallel Execution; or, 9:00 Lambda, the Ultimate TA: Using a Proof Assistant to 9:00 Commutative Monads, Diagrams and Knots foldl and foldr Considered Slightly Harmful Teach Programming Language Foundations Dan Piponi; Industrial Light & Magic Guy L. Steele, Jr.; Sun Microsystems Benjamin C. Pierce; University of Pennsylvania 10:00 Break 10:00 Break 10:00 Break Session 11 (Chair: Ralf Hinze) Session 1 (Chair: Shin-Cheng Mu) Session 6 (Chair: Xavier Leroy) 10:25 Generic Programming with Fixed Points for Mutually 10:25 Functional Pearl: La Tour D’Hano¨ı 10:25 A Universe of Binding and Computation Recursive Datatypes Ralf Hinze; University of Oxford Daniel Licata and Robert Harper; Carnegie Mellon University Alexey Rodriguez Yakushev1, Stefan Holdermans2, Andres 2 3 10:50 Purely Functional Lazy Non-deterministic Program- 10:50 Non-Parametric Parametricity L¨oh , Johan Jeuring ; 1Vector Fabrics B.V., 2Utrecht University, ming Georg Neis, Derek Dreyer, Andreas Rossberg; MPI-SWS 3Utrecht University, Open University of the Netherlands Sebastian Fischer1, Oleg Kiselyov2, Chung-chieh Shan3; 11:15 Break 10:50 Attribute Grammars Fly First-Class: How to do As- 1Christian-Albrechts University, 2FNMOC, 3Rutgers University Session 7 (Chair: Robby Findler) pect Oriented Programming in Haskell 11:15 Break
    [Show full text]
  • Stephanie Weirich –
    Stephanie Weirich School of Engineering and Science, University of Pennsylvania Levine 510, 3330 Walnut St, Philadelphia, PA 19104 215-573-2821 • [email protected] July 13, 2021 Positions University of Pennsylvania Philadelphia, Pennsylvania ENIAC President’s Distinguished Professor September 2019-present Galois, Inc Portland, Oregon Visiting Scientist June 2018-August 2019 University of Pennsylvania Philadelphia, Pennsylvania Professor July 2015-August 2019 University of Pennsylvania Philadelphia, Pennsylvania Associate Professor July 2008-June 2015 University of Cambridge Cambridge, UK Visitor August 2009-July 2010 Microsoft Research Cambridge, UK Visiting Researcher September-November 2009 University of Pennsylvania Philadelphia, Pennsylvania Assistant Professor July 2002-July 2008 Cornell University Ithaca, New York Instructor, Research Assistant and Teaching AssistantAugust 1996-July 2002 Lucent Technologies Murray Hill, New Jersey Intern June-July 1999 Education Cornell University Ithaca, NY Ph.D., Computer Science 2002 Cornell University Ithaca, NY M.S., Computer Science 2000 Rice University Houston, TX B.A., Computer Science, magnum cum laude 1996 Honors ○␣ SIGPLAN Robin Milner Young Researcher award, 2016 ○␣ Most Influential ICFP 2006 Paper, awarded in 2016 ○␣ Microsoft Outstanding Collaborator, 2016 ○␣ Penn Engineering Fellow, University of Pennsylvania, 2014 ○␣ Institute for Defense Analyses Computer Science Study Panel, 2007 ○␣ National Science Foundation CAREER Award, 2003 ○␣ Intel Graduate Student Fellowship, 2000–2001
    [Show full text]
  • Stephanie Weirich –
    Stephanie Weirich School of Engineering and Science, University of Pennsylvania Levine 510, 3330 Walnut St, Philadelphia, PA 19104 215-573-2821 • [email protected] • June 21, 2014 Education Cornell University Ithaca, NY Ph.D., Computer Science August 2002 Cornell University Ithaca, NY M.S., Computer Science August 2000 Rice University Houston, TX B.A., Computer Science May 1996 magnum cum laude Positions Held University of Pennsylvania Philadelphia, Pennsylvania Associate Professor July 2008-present University of Cambridge Cambridge, UK Visitor August 2009-July 2010 Microsoft Research Cambridge, UK Visiting Researcher September-November 2009 University of Pennsylvania Philadelphia, Pennsylvania Assistant Professor July 2002-July 2008 Cornell University Ithaca, New York Instructor, Research Assistant and Teaching Assistant August 1996-July 2002 Lucent Technologies Murray Hill, New Jersey Intern June-July 1999 Research Interests Programming languages, Type systems, Functional programming, Generic programming, De- pendent types, Program verification, Proof assistants Honors Penn Engineering Fellow, University of Pennsylvania, 2014. Institute for Defense Analyses Computer Science Study Panel, 2007. National Science Foundation CAREER Award, 2003. Intel Graduate Student Fellowship, 2000–2001. National Science Foundation Graduate Research Fellowship, 1996–1999. CRA-W Distributed Mentorship Project Award, 1996. Microsoft Technical Scholar, 1995–1996. Technical Society Membership Association for Computing Machinery, 1998-present ACM SIGPLAN, 1998-present ACM SIGLOG, 2014-present IFIP Working Group 2.8 (Functional Programming), 2003-present IFIP Working Group 2.11 (Program Generation), 2007-2012 Teaching Experience CIS 120 - Programming Languages and Techniques I CIS 552 - Advanced Programming CIS 670/700 - Advanced topics in Programming Languages CIS 500 - Software Foundations CIS 341 - Programming Languages Students Dissertation supervision...................................................................................
    [Show full text]
  • Daniel R. Licata
    Daniel R. Licata Personal E-mail: [email protected] Information: Web: http://www.cs.cmu.edu/~drl/ Home Address: 79 Merit Ln. Princeton, NJ 08540 Mobile Phone: +1 (412) 889-0106 Academic Institute for Advanced Study 2012-2013 Background: Member. Post-doc for a year-long special program on Homotopy Type Theory. Carnegie Mellon University 2011-2012 Teaching Post-doctoral Fellow. Designed and delivered a new intro. course, Principles of Functional Programming. Carnegie Mellon University 2004 to 2011 PhD in Computer Science. Advised by Robert Harper. Brown University 2000 to 2004 Bachelor of Science in Mathematics and Computer Science. Awards & FoLLI E.W. Beth Dissertation Award, 2012 Winner Fellowships: CMU SCS Dissertation Award, Honorable Mention, 2011 Pradeep Sindhu Computer Science Fellowship, Carnegie Mellon University, 2009-2010. Finalist for Computing Research Association Outstanding Undergraduate Award, 2004. Funding Cowrote NSF Grant CCF-1116703: Foundations and Applications of Higher-Dimensional Type Theory, which funded part of my post-doc. Cowrote NSF Grant CCF-0702381: Integrating Types and Verification, which funded part of my dissertation work. Publications: Dissertation Dependently Typed Programming with Domain-Specific Logics. February, 2011. Committee: Robert Harper, Frank Pfenning, Karl Crary, Greg Morrisett Journal Articles Robert Harper and Daniel R. Licata. Mechanizing Metatheory in a Logical Framework. Journal of Functional Programming. 17(4-5), pp 613-673, July 2007. Conference Papers Calculating the Fundamental Group of the Circle in Homotopy Type Theory. Daniel R. Licata and Michael Shulman. IEEE Symposium on Logic in Computer Science (LICS), June, 2013. Canonicity for 2-Dimensional Type Theory. Daniel R. Licata and Robert Harper.
    [Show full text]
  • Chung-Chieh Shan 單中杰 Luddy Hall, Room 3018 (812) 856-4400 Phone 700 N
    Chung-chieh Shan ®-p Luddy Hall, Room 3018 (812) 856-4400 phone 700 N. Woodlawn Avenue (812) 855-4829 fax Bloomington, IN 47408-3901 [email protected] Associate Professor, Department of Computer Science, Indiana University (2019–) Assistant Professor, Department of Computer Science, Indiana University (2013–2019) Researcher, Department of Computer Science, University of Tsukuba (Spring 2012) Visiting Assistant Professor, Department of Linguistics, Cornell University (Fall 2011) Assistant Professor, Department of Computer Science and Center of Cognitive Science, Rutgers University (2005–2011) Research I study what things mean that matter. I work to tap into and enhance the amazing human ability to create concepts, combine concepts, and share concepts, by lining up formal representations and what they represent. To this end, in the short term, I develop programming languages that divide what to do and how to do it into modules that can be built and reused separately. In particular, I develop so-called probabilistic programming languages, which divide stochastic models and inference algorithms into modules that can be built and reused separately. In the long term, I hope to supplant first-order logic by something that does not presuppose a fact of the matter what things there are, though there may be a fact of the matter what stuff there is. Teaching Introduction to computer science (BL CSCI C211, Fall 2017, Spring 2018, Fall 2018, Spring 2019, Fall 2019) Probabilistic programming (Invited course at the Scottish school on programming languages
    [Show full text]
  • ICFP Programming Contest 2019 Worker-Wrappers Against Bit Rot Version 1.0
    ICFP Programming Contest 2019 Worker-Wrappers against Bit Rot Version 1.0 ICFP Programming Contest Organisers June 21, 2019, 10:00am UTC 1 Introduction With the tremendous success of functional programming in industry, it has been projected that by the year 2030 most of the code in the world will be written in functional languages using lambdas. To cater to the growing need for lambdas, in 2012 the ICFP contest participants have developed procedures for lifting this precious resource from mines in Scotland.1 Since then, lambdas have been excavated from mines all over the world, and in 2017, ICFP contestants came up with optimal ways to deliver lambdas to users via advanced punting strategies.2 The accelerated mining and delivery of lambdas allowed us to get rid of most legacy code — the infamous bit rotting problem was solved once and for all. However, eliminating legacy code creates a new problem: how to dispose of all the bit-rotten software? A plan has been devised to store it in the empty mines the lambdas were originally extracted from, which can now be converted into legacy waste silos. To prevent bit rot from seeping into the soil, the mines, before they are turned into silos, need to be insulated by wrapping their entire surface in a decay-containing substance. To perform this task, scientists have designed robots called worker-wrappers. This year, we ask the ICFP commu- nity to help dispose of bit-rotten software by programming worker-wrappers. The goal of this contest is to determine, for a number of empty mines, the most ecient way to insulate them.
    [Show full text]
  • Table of Contents
    Contents Table of contents Room Page Chairs’ Welcome 5 Main Conference (Monday – Wednesday) H1+H2 International Conference on Functional Programming, Day 1 6 H1+H2 International Conference on Functional Programming, Day 2 7 H1+H2 International Conference on Functional Programming, Day 3 8 Sunday R22+23 Workshop on Higher-Order Programming with E↵ects (HOPE) 9 R2 Workshop on Generic Programming (WGP) 10 Thursday J1 Haskell Symposium, Day 1 11 J2 ML Family Workshop 12 R24+25 Workshop on Functional High-Performance Computing (FHPC) 13 R2,R4,R26 CUFP Tutorials, Day 1 14 Friday J1 Haskell Symposium, Day 2 15 J2 OCaml Workshop 16 R2 Erlang Workshop 17 R24–26 CUFP Tutorials, Day 2 18 Saturday J2 Commercial Users of Functional Programming (CUFP), Talks 19 R2 Haskell Implementors’ Workshop (HIW) 20 R24+25 Workshop on Functional Art, Music, Modeling and Design (FARM) 21 Social events 22 –3– This page is intentionally left blank. –4– Welcome Chairs’ Welcome It is our great pleasure to welcome you to Gothenburg for the 19th ACM SIGPLAN International Conference on Functional Programming: ICFP 2014. This year’s conference continues its tradition as a forum for researchers, developers, and students to discuss the latest work on the design, implementation, principles, and use of functional programming. The conference covers the entire spectrum, from theory to practice. This year’s call for papers attracted 97 submissions: 85 regular research papers, 9 functional pearls and 3 experience reports. Out of these, the program committee accepted 28 papers, two of which are functional pearls and another two are experience reports.
    [Show full text]
  • ICFP 2008 Final Program
    ICFP 2008 Final Program Monday, Sep 22, 2008 Tuesday, Sep 23, 2008 Wednesday, Sep 24, 2008 Invited Talk (Chair: Peter Thiemann) Invited Talk (Chair: James Hook) Invited Talk (Chair: Mitchell Wand) 9:00 Lazy and Speculative Execution in Computer Systems 9:00 Defunctionalized Interpreters for Higher-Order Lan- 9:00 Polymorphism and Page Tables|Systems Program- Butler Lampson; Microsoft Research guages ming From a Functional Programmer's Perspective 10:00 Break Olivier Danvy; University of Aarhus Mark Jones; Portland State University Session 1 (Chair: Martin Sulzmann) 10:00 Break 10:00 Break 10:30 Flux: FunctionaL Updates for XML Session 6 (Chair: Andrew Tolmach) Session 11 (Chair: Fritz Henglein) James Cheney; University of Edinburgh 10:30 Parametric Higher-Order Abstract Syntax for Mecha- 10:30 Pattern Minimization Problems over Recursive Data 10:55 Typed Iterators for XML nized Semantics Types 1 2 Giuseppe Castagna , Kim Nguyen ; 1PPS (CNRS) - Universit´e Adam Chlipala; Harvard University Alexander Krauss; TU M¨unchen Paris 7 - Paris, France, 2LRI - Universit´eParis-Sud 11 - Orsay, France 10:55 Typed Closure Conversion Preserves Observational 10:55 Deciding kCFA is complete for EXPTIME 11:20 Break Equivalence David Van Horn, Harry Mairson; Brandeis University Toyota Technological Institute at Session 2 (Chair: Matthew Fluet) Amal Ahmed, Matthias Blume; 11:20 Break 11:50 Aura: A Programming Language for Authorization Chicago Session 12 (Chair: Derek Dreyer) and Audit 11:20 Break 11:50 HMF: Simple Type Inference for First-Class Polymor-
    [Show full text]
  • Conference Schedule
    Conference Schedule Platinum Sponsors Chairs’ Message .......................................................................... 2-5 ICFP Committees ..................................................................... 6-11 Other Event Committees ........................................................ 12-25 HIW ........................................................................................ 26-27 HOPE ..................................................................................... 27-28 PLMW @ ICFP ...................................................................... 28-29 ICFP ............................................................................ 30-38, 45, 52 ✰ Distinguished Papers ............................................. 30, 32, 34, 36 Haskell ......................................................................... 39-40, 46-47 NPFL ...................................................................................... 40-41 OCaml .................................................................................... 41-42 TyDe ....................................................................................... 42-44 Tutorials ................................................................. 44-45, 52, 57-58 Social Events .......................................................................... 45, 58 ML .......................................................................................... 47-48 Scala ........................................................................................ 48-50 Scheme
    [Show full text]