archives

Barbara Liskov, Greg Morrisett, Guy Steele keynoting ACM conference on High Integrity Language Technology in Boston, Dec. 2012

A new ACM conference focused on High-Integrity Language Technology is coming to Boston in Dec. 2012. Keynote speakers at HILT2012 include programming language luminaries Barbara Liskov of MIT, Greg Morrisett of Harvard, and Guy Steele of Oracle Labs. Guy Steele wrote the original two Lambda the Ultimate ... papers, and is the father (or at least the sage uncle) of many important programming languages. Barbara Liskov is of course a recent ACM Turing Award winner, and brought the whole notion of abstraction to modern programming languages, and Greg Morrisett is a pioneer in providing secure programming at the very lowest levels of abstraction. Information on all five of the keynotes, the overall schedule, registration, and accommodations is available at:

  http://www.sigada.org/conf/hilt2012

How to type polymorphic variants with open generic functions?

I'd like to implement a language with polymorphic variants, but instead of using pattern matching, I'd like to use Common Lisp-like generic functions that are defined with define-generic, and to which cases can be added with define-method.

Where in pseudo-ML I'd say

let length list =
  case list of 
    `Nil -> 0
  | `Cons _ cdr -> 1 + length cdr

in my language I'd say

(define-generic length)
(define-method (length `Nil) 0) 
(define-method (length (`Cons _ cdr)) (+ 1 (length cdr))) 

I'd like to able to add methods in different compilation units, and only type-check generic functions at the end of compile-time, once all methods are known. Another possibility might be to defer type checking of generic functions to link time.

Any ideas or pointers to things I should check out? I'm currently reading Simple Type Inference for Structural Polymorphism, and TAPL is lying on the coffee table.

solution to the ever narrowing posts problem?

are there any drupal hackers who could somehow fix the ever narrowing text problem? :-)