Talk Topics 2008

Afp
Schedule for the first mini talk session on Wednesday, 11 March 2009:

Speakers Topic Slides
Tamar, Timon Hoogle slides
Julian Uniplate  
Gerben Pan# slides
Jeroen, Oscar lambdabot slides summary
Paul xmonad slides

Schedule for the second mini-talk session on Monday, 6 April 2009:

Speakers Topic Slides
Bodo turbinado slides summary
Tom HAppstack  
Benjamin dph(?) slides summary
Rui Agda  
Vali .NET(?)  

This list below is still the list of the course. It may nevertheless serve as a source of ideas for picking your mini-talk topic.

This page lists possible topics for mini-talks plus a short description and relevant links and papers.

Haskell Development

SmallCheck and Lazy SmallCheck

SmallCheck and Lazy SmallCheck are variants of QuickCheck that perform exhaustive rather than random testing.

Homepage: http://www-users.cs.york.ac.uk/~mfn/lazysmallcheck/

Catch

From the manual: "Catch is a tool for checking that a piece of Haskell code does not have any inexhaustive pattern matches, and will not fail at runtime with a pattern match error. For the purposes of Catch, the includes things like passing the empty list to head, or division by zero."

The tool requires Yhc (the York Haskell Compiler).

Homepage: http://www-users.cs.york.ac.uk/~ndm/catch

Also check out Neil Mitchell's blog.

Hoogle

Hoogle is a Haskell API search engine, written by Neil Mitchell. It allows you to search by either name, or by approximate type signature.

Homepage: http://www.haskell.org/haskellwiki/Hoogle

Also check out Neil Mitchell's blog.

IOSpec

From the homepage: "IOSpec is a library containing a pure specification of several functions in the IO monad. You can use these specifications to test, debug, and reason about impure code."

Homepage: http://www.cs.nott.ac.uk/~wss/repos/IOSpec/

Paper: http://www.cs.nott.ac.uk/~wss/Publications/BeautyInTheBeast.pdf

lhs2TeX

lhs2TeX is a preprocessor to generate LaTeX code from literate Haskell sources.

Homepage: http://people.cs.uu.nl/andres/lhs2tex

Shuffle

From the homepage: "Shuffle is a tool for manipulating source fragments."

Distributed as a part of EHC (Essential Haskell Compiler).

Homepage: http://www.cs.uu.nl/wiki/Ehc/Shuffle

HaRe

HaRe is a refactoring tool for Haskell.

Might be difficult to get running, but lots of material available.

Homepage: http://www.cs.kent.ac.uk/projects/refactor-fp/hare.html

lambdabot

From the homepage: "Lambdabot is a Haskell development tool, written in Haskell. It operates as a command line tool, embedded in an editor, embedded in GHCi, via internet relay chat and on the web."

Homepage: http://www.cse.unsw.edu.au/~dons/lambdabot.html

EclipseFP

From the homepage: "We extend the Eclipse IDE with tools for development in Haskell, a functional programming language, providing support for a wide range of tools (compilers, interpreters, doc tools etc.) in a coherent, convenient and configurable environment."

Requires Eclipse:

Homepage: http://eclipsefp.sourceforge.net Presentation: http://leiffrenzel.de/papers/eclipsefp-icfp2007-presentation.pdf

Hat

From the homepage: "Hat is a source-level tracer for Haskell 98, the standard lazy functional programming language. Hat is a tool that gives the user access to otherwise invisible information about a computation."

Might be difficult to get running with current compilers, but lots of material available.

Homepage: http://www.haskell.org/hat/ Publications: http://www.haskell.org/hat/publications.html

There are also related systems that might be suitable for a mini-talk: Buddha (http://www.cs.mu.oz.au/~bjpop/buddha/) and HOOD (http://www.haskell.org/hood/).

Libraries

Eros

From the homepage: "Eros enables higher-order functional programming via a visual, non-syntactic interface. Every component (basic value or function) is presented as a GUI-style visualization. In the case of functions, the visualizations are interactive, allowing the user/author to explore the domain and see corresponding range values. A value (usually function) and its visualization together form what I call a "tangible value" or "TV"."

Homepage: http://haskell.org/haskellwiki/Eros

Movie of presentation: http://www.youtube.com/watch?v=faJ8N0giqzw

Contracts

A library for behavioral contracts in Haskell.

Paper: http://people.cs.uu.nl/andres/Contracts.html

Binary

Efficient, pure binary serialisation using lazy ByteStrings? .

Little documentation, requires you to look at the actual code.

HackageDB: http://hackage.haskell.org/cgi-bin/hackage-scripts/package/binary-0.4.1

Haskore

From the tutorial: "Haskore is a collection of Haskell modules designed for expressing musical structures in the high-level, declarative style of functional programming. In Haskore, musical objects consist of primitive notions such as notes and rests, operations to transform musical objects such as transpose and tempo-scaling, and operations to combine musical objects to form more complex ones, such as concurrent and sequential composition. From these simple roots, much richer musical ideas can easily be developed."

Homepage: http://www.haskell.org/haskore/

Pan

A combinator language to describe images and animations.

Pan# requires the Microsoft .NET Framework.

Pan# homepage: http://www.haskell.org/edsl/pansharp.html

X11 / xmonad

Bindings to the X11 window system and a minimalistic window manager written in Haskell.

Homepage: http://www.xmonad.org

Movie of presentation: http://www.ludd.ltu.se/~pj/hw2007/xmonad.mov

Lava

From the homepage: "Lava is a hardware description language based upon the functional programming language Haskell. Its main aim is to show that modern programming language features such as type inference, polymorphism, higher-order functions, type classes, and laziness are very useful even in hardware description."

Homepage: http://www.cs.chalmers.se/~koen/Lava/

Uniplate

A library for generic traversals in Haskell.

Homepage: http://www-users.cs.york.ac.uk/~ndm/uniplate/

Language

Views / pattern guards

Views and pattern guards aim at strengthening the pattern language.

Views paper: http://citeseer.ist.psu.edu/wadler86views.html Old Views proposal: http://www.haskell.org/development/views.html Pattern guards paper: http://citeseer.ist.psu.edu/299277.html

Implicit parameters

Implicit parameters are dynamically scoped variables in a Haskell-like type system.

GHC Users Guide: http://cvs.haskell.org/Hugs/pages/users_guide/implicit-parameters.html

Paper: http://citeseer.ist.psu.edu/lewis00implicit.html

MLF / impredicative polymorphism

Impredicative polymorphism allows polymorphic types to be instantiated with polymorphic types, and data structures to be parameterized by polymorphic types.

MLF papers: http://citeseer.ist.psu.edu/lebotlan03raising.html, http://portal.acm.org/citation.cfm?id=1086365.1086385

Impredicative polymorphism in Haskell: http://research.microsoft.com/%7Esimonpj/papers/boxy/

Curry / functional logic programming

Curry is a hybrid programming language with concepts from both functional and logic programming.

Homepage: http://www.informatik.uni-kiel.de/~curry/

Open datatypes / open functions

A proposed extension to Haskell that allows datatypes and functions to be extensible.

Paper: http://people.cs.uu.nl/andres/OpenDatatypes.html

Omega

A language variant of Haskell that has a much extended kind system.

Homepage: http://web.cecs.pdx.edu/~sheard/Omega/index.html

Dependent types / Agda2

Agda2 is a programming language with a Haskell-inspired syntax and dependent types.

Homepage: http://appserv.cs.chalmers.se/users/ulfn/wiki/agda.php

STM

Software Transactional Memory (STM) is an abstraction for concurrent communication.

Wiki with links to several papers: http://www.haskell.org/haskellwiki/Software_transactional_memory

-- AndresLoeh - 31 Mar 2008


Topic attachments
I Attachment Action Size Date Who Comment
pdfpdf Benjamin_Presentation.pdf manage 266.0 K 10 Apr 2009 - 18:26 BodoNaumann Parallel Computing and Haskell
pdfpdf Catch.pdf manage 252.6 K 02 Apr 2008 - 08:34 SanderSchuckman Presentation on Catch
pdfpdf HaRe_2008-02-25.pdf manage 1994.7 K 31 Mar 2008 - 17:16 TomLokhorst Presentation on HaRe
pdfpdf Hoogle.pdf manage 2382.3 K 12 Mar 2009 - 12:48 TamarChristina Hoogle Presentation 2009
pdfpdf Mini-talk_2009-03-11_Lambdabot.pdf manage 404.1 K 11 Mar 2009 - 21:26 JeroenBouwmans  
pdfpdf Mini-talk_2009-03-11_Lambdabot_summary.pdf manage 43.2 K 30 Mar 2009 - 06:16 JeroenBouwmans  
pdfpdf Mini.pdf manage 14.2 K 20 Apr 2009 - 11:29 BodoNaumann  
pdfpdf PAN#.pdf manage 97.1 K 26 Mar 2009 - 20:02 GerbenVerburg Presentation Pan#
pdfpdf ViewsPatternGuards.pdf manage 1503.1 K 12 Apr 2008 - 14:11 BasDenHeijer Presentation on Views and Pattern Guards
pdfpdf hoogle-presentatie-1.pdf manage 340.6 K 08 Apr 2008 - 20:25 ArdBahlman Presentation on Hoogle
pdfpdf lambdabot.pdf manage 247.2 K 31 Mar 2008 - 20:26 JeroenWeijers Presentation on lambdabot
pdfpdf lhs2TeX.pdf manage 315.5 K 07 Apr 2008 - 17:16 PaulLammertsma Presentation on lhs2TeX
pdfpdf minitalk.pdf manage 69.4 K 07 Apr 2008 - 13:38 SebastiaanVisser Open Data Types and Open Functions
pdfpdf presentation.pdf manage 68.9 K 02 Apr 2008 - 18:56 ErikHesselink Presentation on tries
pdfpdf presentation_summary.pdf manage 65.3 K 10 Apr 2009 - 18:31 BodoNaumann Summary
pdfpdf stm.pdf manage 66.4 K 05 Apr 2008 - 07:43 ErikHesselink STM presentation
pdfpdf turbinado.pdf manage 200.1 K 10 Apr 2009 - 18:27 BodoNaumann Turbinado
pdfpdf xmonad.pdf manage 306.6 K 11 Mar 2009 - 13:13 PaulVanDerEnde xmonad slides