User loginNavigation |
Type TheoryExtensible Effects -- An Alternative to Monad TransformersExtensible Effects -- An Alternative to Monad Transformers, by Oleg Kiselyov, Amr Sabry and Cameron Swords:
A follow-up to Oleg's delimited continuation adaptation of Cartwright and Felleisen's work on Extensible Denotational Language Specifications, which is a promising alternative means of composing effects to the standard monad transformers. This work embeds a user-extensible effect EDSL in Haskell by encoding all effects into a single effect monad using a novel open union type and the continuation monad. The encoding is very similar to recent work on Algebraic Effects and Handlers, and closely resembles a typed client-server interaction ala coroutines. This seems like a nice convergence of the topics covered in the algebraic effects thread and other recent work on effects, and it's more efficient than monad transformers to boot. By naasking at 2013-07-29 14:53 | Functional | Logic/Declarative | Theory | Type Theory | 22 comments | other blogs | 40384 reads
Mixed-Site VarianceRoss Tate is calling for "Industry Endorsement" for his paper Mixed-Site Variance.
Abstract: Java introduced wildcards years ago. Wildcards were very expressive, and they were integral to updating the existing libraries to make use of generics. Unfortunately, wildcards were also complex and verbose, making them hard and inconvenient for programmers to adopt. Overall, while an impressive feature, wildcards are generally considered to be a failure. As such, many languages adopted a more restricted feature for generics, namely declaration-site variance, because designers believed its simplicity would make it easier for programmers to adopt. Indeed, declaration-site variance has been quite successful. However, it is also completely unhelpful for many designs, including many of those in the Java SDK. So, we have designed mixed-site variance, a careful combination of definition-site and use-site variance that avoids the failings of wildcards. We have been working with JetBrains to put this into practice by incorporating it into the design of their upcoming language, Kotlin. Here we exposit our design, our rationale, and our experiences. Mention of it is also at Jetbrain's Kotlin blog. Dependent Types for JavaScriptDependent Types for JavaScript, by Ravi Chugh, David Herman, Ranjit Jhala:
Some good progress on inferring types for a very dynamic language. Explicit type declarations are placed in comments that start with "/*:". /*: x∶Top → {ν ∣ite Num(x) Num(ν) Bool(ν)} */ function negate(x) { if (typeof x == "number") { return 0 - x; } else { return !x; } } By naasking at 2013-03-23 15:08 | Object-Functional | Theory | Type Theory | 128 comments | other blogs | 33857 reads
How OCaml type checker works -- or what polymorphism and garbage collection have in commonHow OCaml type checker works -- or what polymorphism and garbage collection have in common
As usual with Oleg, there's a lot going on here. Personally, I see parallels with "lambda with letrec" and "call-by-push-value," although making the connection with the latter takes some squinting through some of Levy's work other than his CBPV thesis. Study this to understand OCaml type inference and/or MLF, or for insights into region typing, or, as the title suggests, for suggestive analogies between polymorphism and garbage collection. By Paul Snively at 2013-03-10 16:25 | Functional | Implementation | Type Theory | 1 comment | other blogs | 18473 reads
Records, sums, cases, and exceptions: Row-polymorphism at workVideo: Records, sums, cases, and exceptions: Row-polymorphism at work, Matthias Blume.
Found this to be an enjoyable and thorough overview of MLPolyR, a language created for a PL course that goes all-out on various dimensions of row polymorphism, resulting in a small yet powerful language. (previously) By Manuel J. Simoni at 2012-11-01 10:12 | Implementation | Type Theory | 4 comments | other blogs | 20231 reads
Koka a function oriented language with effect inference
Koka extends the idea of using row polymorphism to encode an effect system and the relations between them. Daan Leijen is the primary researcher behind it and his research was featured previously on LtU, mainly on row polymorphism in the Morrow Language. So far there's no paper available on the language design, just the slides from a Lang.Next talk (which doesn't seem to have video available at Channel 9), but it's in the program for HOPE 2012. By Daniel Yokomizo at 2012-08-16 05:40 | Functional | Software Engineering | Type Theory | 3 comments | other blogs | 24057 reads
How to Make Ad Hoc Proof Automation Less Ad HocHow to Make Ad Hoc Proof Automation Less Ad Hoc
If you've ever toyed with Coq but run into the difficulties that many encounter in trying to construct robust, comprehensible proof scripts using tactics, which manipulate the proof state and can leave you with the "ground" of the proof rather than the "figure," if you will, in addition to being fragile in the face of change, you may wish to give this a read. It frankly never would have occurred to me to try to turn Ltac scripts into lemmas at all. This is much more appealing than most other approaches to the subject I've seen. By Paul Snively at 2012-06-22 15:41 | Functional | Implementation | Logic/Declarative | Type Theory | 9 comments | other blogs | 11444 reads
Tool Demo: Scala-Virtualized
Scala has always had a quite good EDSL story thanks to implicits, dot- and paren-inference, and methods-as-operators. Lately there are proposals to provide it with both macros-in-the-camlp4-sense and support for multi-stage programming. This paper goes into some depth on the foundations of the latter subject. By Paul Snively at 2012-05-26 22:28 | DSL | Implementation | Meta-Programming | Object-Functional | Scala | Semantics | Type Theory | login or register to post comments | other blogs | 12905 reads
Programming as collaborative referenceProgramming as collaborative reference (extended abstract and slides) by everybody's favorite PLT tag team, Oleg and Chung-chieh, from the Off-the-beaten track workshop affiliated with POPL 2012:
By Manuel J. Simoni at 2012-02-04 16:48 | Paradigms | Type Theory | 12 comments | other blogs | 11406 reads
The Algebra of Data, and the Calculus of MutationKalani Thielen's The Algebra of Data, and the Calculus of Mutation is a very good explanation of ADTs, and also scratches the surfaces of Zippers:
(hat tip to Daniel Yokomizo, who used to be an LtU member...) By Manuel J. Simoni at 2012-02-03 15:53 | Teaching & Learning | Type Theory | 11 comments | other blogs | 14774 reads
|
Browse archives
Active forum topics |
Recent comments
5 weeks 16 hours ago
45 weeks 2 days ago
45 weeks 2 days ago
45 weeks 2 days ago
1 year 15 weeks ago
1 year 19 weeks ago
1 year 21 weeks ago
1 year 21 weeks ago
1 year 23 weeks ago
1 year 28 weeks ago