« The Rumour Starts Here! | Main | Binding! The beer of choice for Computer Science »
May 04, 2006
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.
Sapir-Whorf
- 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 Scheme
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: ppig.org Productivity of programmers is directly dependent on number of languages they know not the number of years of experience.
Cross-languages
- 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.
ProfessorJ
- 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 by Noel at May 4, 2006 11:38 PM
