SingHaskell 2007
News
Slides of talks are accessible via http://www.comp.nus.edu.sg/~sulzmann/singhaskell07/index.html
What is SingHaskell?
Sing(apore)Haskell is a Haskell (and related languages) meeting in Singapore. The meeting is organized by Tom Schrijvers ( Tom.Schrijvers@cs.kuleuven.be ) and Martin Sulzmann ( sulzmann@comp.nus.edu.sg ) and will be hosted by the National University of Singapore.
Date and location
Sing(apore)Haskell takes place on Wed 28 Nov 2007 (right before APLAS'07 http://flint.cs.yale.edu/aplas2007/). The meeting will be held on the National University of Singapore campus at COM1-02-VC (2nd floor video conference room, School of Computing) Further location details: http://www.comp.nus.edu.sg/aboutsoc/getting_to_soc_at_com1.htm http://www.comp.nus.edu.sg/corpcomm/location/maps.htm#com1 http://www.comp.nus.edu.sg/corpcomm/location/COM1_L2.htm The meeting starts at 9:30am and should end around 2pmish (with a lunch-break, on your own, in between)
Let Tom or Martin know if you are interested in coming. Either to attend the meeting or even give a talk.
Programme
9:30-9:55 Welcome, Quick intro to Haskell, Martin Sulzmann
10:00-10:25 First Class Constraint Programming in Haskell, Tom Schrijvers
We report on our Constraint Logic Programing framework for Haskell. The core concept of the framework is the search tree, which is explored by primitive search strategies. A primitive search strategy is defined by a queue datatype and can be extended by a search transformer. Moreover, multiple search transformers can be composed to obtain quite complex behavior. Note that our framework is generic in the underlying constraint solver, and in particular works for both backtracking and copying-based solvers.
10:30-10:55 Implementing STM in Concurrent Haskell, Frank Huch
Composable memory transactions are a new communication abstraction for Concurrent Haskell, which provides the programmer with a composable communication concept. Unfortunately, composable memory transactions are implemented as external functions for ghc and not available for other implementation of Concurrent Haskell.
We present an implementation of memory transactions within Concurrent Haskell. The library can be executed within older ghc versions as well as with the popular Hugs system. Benchmarks show, that our library performes well. Furthermore, our (high-level) implementation can be extended and maintained more easily than the low-level implementation provided by ghc.
11:00-11:25 Rule-based concurrent programming in Haskell, Edmund Lam
We report some preliminary results on integrating Constraint Handling Rules (CHR) into Haskell to support concurrent programming. CHR is rule-based language to describe concurrent transformations (rewritings) among multi-sets of constraints (atomic formulae). We give programming examples to explore the power of our extension and relate it to languages based on the join calculus. We have implemented a prototype in STM Haskell. Experimental results show that we can achieve significant speed-ups on multi-core architectures (more cores = programs runs faster).
11:30-11:55 XHaskell - Adding regular expression types to Haskell, Kenny Lu
We present an extension of Haskell, baptized XHaskell, which combines parametric polymorphism, algebraic data types and type classes found in Haskell with regular expression types, subtyping and regular expression pattern matching found in XDuce. We give programming examples and report on the current implementation status.
12:00 - 12:25 Static Contract Checking for Haskell, Dana Xu
Program errors are hard to detect and are costly both to programmers who spend significant efforts in debugging, and to systems that are guarded by runtime checks. Static verification techniques have been applied to imperative and object-oriented languages, like Java and C#, but few have been applied to a higher-order lazy functional language, like Haskell. In this talk, I shall describe a sound and automatic static verification tool for Haskell, that is based on contracts and symbolic execution. Our approach gives precise blame assignments at compile-time in the presence of higher-order functions and laziness.
12:30 - 13:20 Lunch break
13:30 - 13:25 Functional dependencies versus type functions and beyond, Martin Sulzmann
Details tba announced later.
13:30-13:55 Bernd Brassel
Something on Curry/Erlang? Details tba announced later.
14:00-14:25 Hunting Comonads, Kim-Ee Yeoh
Comonads are dual to monads, but there are far more monads than their less glamorous twin. We use Haskell to search for more comonads, using the comonadic associative law as a starting point. Counterintuitively, the results suggest that comonads are more populous than monads.
15:00 - 16:30 Zhong Shao's CS dept/SingHaskell invited talk
16:30 - 18:00 discussion session
Change in venue: COM1/240
Participants
- Dana Xu (Cambridge University)
- Kenny Lu (NUS)
- Edmund Lam (NUS)
- Frank Huch (Uni Kiel)
- Bernd Brassel (Uni Kiel)
- Razvan Voicu (NUS)
- Florin Craciun (NUS)
- Alexander Arul (Singapore Ruby Brigade)
- Ludovic Coquelle
- Martin Sulzmann (NUS)
- Tom Schrijvers (KULeuven)
- Peter Van Weert (KULeuven)
- Nick Palevsky
- Kim-Ee Yeoh (University of Wisconsin)
