Just a note: I’ve had a (mostly idle) Twitter account for a while, @mgrnbrg. Feel free to say hello!
Author: Michael Greenberg
Towards a core calculus for implicitly migration-capable applications
Yitzhak Mandelbaum and I have been thinking about language support for program migration. We submitted a short paper, Towards a core calculus for implicitly migration-capable applications, to PEPM’12 summarizing what we’ve done so far and the direction we’re headed. Here’s the abstract:
Mobile computational devices, like smartphones, tablets and laptops, have become a standard part of the computing landscape. Moreover, many users regularly interact with an assortment of devices, including mobile ones. Therefore, the ability to migrate UI-enabled applications is becoming increasingly important. We describe a design-pattern for applications to simplify support for user-session migration and provide an overview of a lambda calculus for which significant elements of the design pattern can be implemented automatically.
We’d appreciate any ideas, comments, or questions.
PHPEnkoder 1.11
A change not due to NilsOla Nilsson broke PHPEnkoder 1.10 on mailto: links. But he caught this almost immediately and sent me a fix. PHPEnkoder 1.11 should work fine. Thanks, NilsOla!
As usual, updates are available from the WordPress plugin directory or from your dashboard.
PHPEnkoder 1.10
NilsOla Nilsson pointed out a few changes I could make to the link-detection regexes that resolved a few issues with overzealous encoding.
As usual, updates are available from the WordPress plugin directory—or, of course, automatically in your dashboard.
PHPEnkoder 1.9
Per a bug report from Kim Carr at WebShoppingSystems.com, PHPEnkoder now correctly supports whitespace—this bug was most noticeable in [enkode] shortcodes.
Updates are available from the WordPress plugin directory—or straight from your dashboard. (We’ve come quite a way from 2.3, haven’t we!)
PHPEnkoder 1.8
Per Tom’s report, version 1.8 fixes a few minor bugs. If PHPEnkoder is working for you, there’s no pressing need to upgrade.
Updates from now on will only be available from the WordPress plugin directory.
Lovelace and Babbage vs. The Organist
The latest and longest-yet episode of the graphic novel Lovelace and Babbage—Lovelace and Babbage vs. the Organist—at 2D Goggles has come to a close. If you haven’t seen it before, check it out! I highly recommend it.
ESOP 2011 Papers
I’m happy to announce the final versions of two ESOP 2011 papers. Polymorphic Contracts was work done with João Belo, Atsushi Igarashi, and my advisor, Benjamin Pierce. Measure Transformer Semantics for Bayesian Machine Learning was work done at my internship at MSR Cambridge this summer; the real heroes of this story are Johannes Borgström, Andy Gordon, James Margetson, and Jurgen Van Gael.
See you in Saarbrücken?
Polymorphic Contracts
João Belo, Atsushi Igarashi, Benjamin Pierce, and I submitted a paper, Polymorphic Contracts, to ESOP’11. Here’s the abstract:
Manifest contracts track precise properties by refining types with predicates—e.g., {x:Int | x > 0} denotes the positive integers. Contracts and polymorphism make a natural combination: programmers can give abstract types strong contracts, precisely stating pre- and post-conditions while hiding implementation details—for example, an abstract type of stacks might specify that the pop operation has input type {x:α Stack | not (empty x)}. We formalize this combination by defining FH, a polymorphic calculus with manifest contracts, and establishing its fundamental properties, including type soundness and relational parametricity. Our development relies on a significant technical improvement over earlier presentations of contracts: instead of introducing a denotational model to break a problematic circularity between typing, subtyping, and evaluation, we develop the metatheory of contracts in a completely syntactic fashion, omitting subtyping from the core system and recovering it post facto as a derived property.
The Resurgence of Parallelism
There’s an article in the CACM trying to restore historical context to research in parallel computation: The Resurgence of Parallelism. (One of) the answer(s), it seems, is functional programming:
Parallelism is not new; the realization that it is essential for continued progress in high-performance computing is. Parallelism is not yet a paradigm, but may become so if enough people adopt it as the standard practice and standard way of thinking about computation.
The new era of research in parallel processing can benefit from the results of the extensive research in the 1960s and 1970s, avoiding rediscovery of ideas already documented in the literature: shared memory multiprocessing, determinacy, functional programming, and virtual memory.
Via LtU.