User loginNavigation |
FunctionalLightweight Monadic Regions
Oleg Kiselyov and Chung-chieh Shan. Lightweight Monadic Regions. Haskell'08.
We present Haskell libraries that statically ensure the safe use of resources such as file handles. We statically prevent accessing an already closed handle or forgetting to close it. The libraries can be trivially extended to other resources such as database connections and graphic contexts... I am starting to think we need a department for effect systems and related topics (though we managed without a monads department!)... You'll probably want to read the code, so go ahead. The code makes it plain which features of the type system are needed to achieve the end result. By Ehud Lamm at 2008-08-06 16:57 | Functional | Software Engineering | Type Theory | 10 comments | other blogs | 10888 reads
A System to Understand Incorrect ProgramsAn ancient paper (July 1978: 30 years ago) from the long gone Lisp Bulletin by Harald Wertz. The system describes attempts to improve incompletely specified Lisp programs, without however resorting to more information, in the form of specifications, test cases or the like. A second paper on the system is Stereotyped Program Debugging: an Aid for Novice Programmers. By Ehud Lamm at 2008-07-21 11:44 | Functional | History | Teaching & Learning | 7 comments | other blogs | 9259 reads
Partial vectorisation of Haskell programsPartial vectorisation of Haskell programs. Manuel M. T. Chakravarty, Roman Leshchinskiy, Simon Peyton Jones, and Gabriele Keller, Proc ACM Workshop on Declarative Aspects of Multicore Programming, San Francisco, Jan 2008.
The idea is fairly simple, and utilizes conversion between vectorized and unvectorized representations of the datatypes. A formal translation scheme is provided. Data Parallel Haskell papers are here. By Ehud Lamm at 2008-07-20 16:05 | Functional | Parallel/Distributed | 1 comment | other blogs | 9485 reads
Catch me if you can: Towards type-safe, hierarchical, lightweight, polymorphic and efficient error management in OCamlCatch me if you can: Towards type-safe, hierarchical, lightweight, polymorphic and efficient error management in OCaml, by David Teller, Arnaud Spiwack, Till Varoquaux:
Exhaustively checked, user-friendly exception handling was a bit of an open problem for awhile. As the paper details, languages supported either cumbersome, exhaustively checked polymorphic exceptions, as in Haskell, or we had unchecked easily extensible monomorphic exceptions, as in ML, or we had checked, extensible exceptions using a universal type as in Java. Supporting exhaustively checked, easily extensible polymorphic exceptions seemed quite a challenge, which this paper solves using monadic error handling and nested polymorphic variants. The paper also gives a good overview of current techniques of exception checking in OCaml, ie. ocamlexc. The performance of such exceptions is understandably lower than native exceptions, given all the thunking and indirection that monads entail. The authors attempt various implementations and test their performance against native exceptions. Ultimately, monadic error management seems acceptable for actual error handling, but not for control flow as native exceptions are sometimes used in OCaml. One interesting extension is to consider how efficient the implementations would be given more sophisticated control flow operators, such as continuations, coroutines, or delimited continuations, or whether native exceptions can be salvaged using a type and effects system in place of monads. By naasking at 2008-07-11 15:16 | Functional | Implementation | Software Engineering | 12 comments | other blogs | 20553 reads
Functional NetlistsFunctional Netlists, Sungwoo Park, Jinha Kim, Hyeonseung Im. ICFP 2008.
Given the recent discussion about hardware synthesis languages, the appearance of this paper seems timely. The use of linear types is perhaps unsurprising from a technical point of view, but it's surprising when you consider how frequently and in how many different contexts they appear. Also, one thing I don't understand: there's apparently a difference between a "hardware description language" and a "hardware synthesis language". If anyone could explain what the difference means, I'd appreciate it. :) Non-Deterministic Recursive Ascent ParsingNon-Deterministic Recursive Ascent Parsing, Renee Leermakers. 1991 conference on European chapter of the Association for Computational Linguistics.
How LR parsers worked always confused me until I learned about their presentation in terms of recursive ascent. Parametric Higher-Order Abstract Syntax for Mechanized SemanticsParametric Higher-Order Abstract Syntax for Mechanized Semantics
I was aware of this some months ago now, but held back commenting on it at Adam's request until it had been accepted for publication, which it now apparently has. This is (one element of) Adam's continued work on LambdaTamer, his Coq-based environment for building certified compilers. There is a new version of LambdaTamer using this parametric higher-order abstract syntax approach. The new version also works in current and future versions of Coq, unlike the previous version. Finally, Adam is apparently working on a paper regarding "type-theoretic denotational semantics for higher order, impure object languages" and is post-docing with Greg Morrisett. The relationship between Adam's work and the YNot project is a bit unclear to me; perhaps either Adam or Greg could help clarify that. Update: Whoops. I got ahead of myself and neglected to notice that the paper is not actually yet available, although the new version of LambdaTamer is. So at the moment, this story is merely to note that the paper exists and to provide a link to the new LambdaTamer. My apologies to Adam and the LtU readership. 2nd Update: The paper is now available at the link, in either PostScript or PDF form. By Paul Snively at 2008-06-16 15:44 | Functional | Implementation | Type Theory | 1 comment | other blogs | 17287 reads
FPH: First-class Polymorphism for HaskellFPH: First-class Polymorphism for Haskell, by Dimitrios Vytiniotis, Stephanie Weirich and Simon Peyton Jones:
Under Related Work, the authors provide a detailed comparison of their system with MLF, and HMF. April 1st special: The War of the WorldsConrad Barski has posted a sneak peak from his upcoming Lisp textbook/comic: Land of Lisp. The first slides may seem unrelated, but boy does the message sting when you reach the ending... FPers will be quick to note, of course, that this being April Fools' Day the whole thing is a joke and we can all go back to Haskell... By Ehud Lamm at 2008-04-02 00:34 | Critiques | Fun | Functional | 32 comments | other blogs | 36274 reads
The Disciplined Disciple CompilerDisciple is an explicitly lazy dialect of Haskell which includes: The wiki page has more information, unfortunately there's no paper yet summarizing the ideas and results. Their effect system is quite interesting. Some of the ideas recently discussed here are implemented in Disciple. via Haskell Cafe By Daniel Yokomizo at 2008-03-20 14:19 | Functional | Semantics | Type Theory | 10 comments | other blogs | 13613 reads
|
Browse archives
Active forum topics |
Recent comments
23 weeks 3 days ago
23 weeks 3 days ago
23 weeks 3 days ago
45 weeks 4 days ago
49 weeks 6 days ago
51 weeks 3 days ago
51 weeks 3 days ago
1 year 2 weeks ago
1 year 6 weeks ago
1 year 6 weeks ago