Read on and leave a comment
or return to our portfolio.

4 May 2006

by Noel

Dagstuhl 06181

Due to what I can only assume was a clerical error, I was invited to the Dagstuhl seminar on latently typed languages. I accepted before this error could be rectified, and so it is that this blog post comes to you from room 23 in Dagstuhl.

There have been a number of talks of various topics of
interest. Being a good student, I’ve taken notes, which I
intend to put online as time allows. You’ll have to fill in
a few gaps but I hope they’ll give you an idea of what has
been discussed. The first talk is below:

Cross Language Runtimes

Wolfgang De Meuter, Marc Feeley, Robby findler, Roel Wuyts et al.


  • not true, but illustrates a problem
  • the programming language used determines how we see and
    think about the solution e.g. malleable syntax Java vs

Ralph Johnson: study at IBM on what characteristics making
people learn Smalltalk more easily. Number one
characteristic was how many languages you already knew. The
more you know the easier it is to pick up new languages.

Matthias F: Productivity of programmers is directly
dependent on number of languages they know not the number of
years of experience.


  • mix several languages, choose the right tool for the job
  • problem mapping concepts betweeen different languages

Survey cross language systems

Gambit-C (Scheme) FFI to C/C++

  • (c-define (f x y) (int int) int "f" "" (* x y))
    Defines a procedure called f in C, and wraps Scheme
    around it.
  • c-lambda (inline C)

Matthias F: Scheme is not a safe language as the spec
leaves many things undefined.


  • Java extended with dynamic, Scheme with contracts.
  • Java types mapped to Scheme contracts

Robby F: dynamic is like the Any (TST) type for Java. Too
much to explain now.

SCM2JS Scheme to Javascript

  • Embed Scheme is web pages like Javascript (neat!)
  • Compile to JS

SHard Scheme to VHDL

  • Allow programming techniques and transformations to be
    applied to hardware
  • Dataflow language: extends Scheme with par like Occam
    for parallelism
  • CPS analysis of control flow
  • Allows calls to VHDL components
  • Key was to implement function calls — so full
    programming language can be comiled to hardware

Soul Prolog and Smalltalk

  • Logic programming language interpreted by Smalltalk
  • Prolog symbols are Smalltalk objects
  • Reason about code, using reflection
  • LogicAJ Generic AOP language
  • Logic meta variables
  • Carma Smalltalk + Soul
  • Generic AOP language
  • Very dynamic

etc [other examples]

Linguistic symbiosis

  • Making data and operations from one language accessible
    in tohe other language
  • Essentially quote/unquote between languages
  • Requires careful distinciton between evaluation
    contexts (between languages) to handle (un)wrapping and
    (more importantly) semantics

Robby F: sometimes wrappers must stay around to enforce
constraints when, for instance, mixing static and latently
typed languages.

Andrew Black: copying implementations don’t work in parallel
systems with mutable state

My comments: There were a lot of questions so the talk ended up being a bit rushed. A lot of time was spent on the survey (and answering questions) which unfortunately left little time to really tease out the interesting issues.

Posted in General | Comments Off on Dagstuhl 06181

Comments are closed.