archives

Synchronic Computaion

May I draw members attention to a novel approach to spatial programming, and parallel formal model of computation. As far as I am aware, no pure λ-calculus interpreter and simulator for a high level programming language such as Haskell has been constructed, that has viable time and space complexity characteristics. That difficulty lends support to the spatial approach, which questions the outlook that software may be studied as a pure discipline in isolation from hardware. An 8 page summary paper on Synchronic Computation may be accessed at http://arxiv.org/abs/1008.1673. Further links to reports may be found at http:www.isynchronise.com, and links to discussions at http://www.linkedin.com/groupRegistration?gid=2842794.

Lightweight Modular Staging: A Pragmatic Approach to Runtime Code Generation and Compiled DSLs (Tiark Rompf, Martin Odersky)

PDF

This was posted a few hours ago to the Scala mailing list. I found A Gentle Introduction to Multi-stage Programming (Walid Taha, GPCE '04) inspiring, and immediately started to think about how similar techniques would be possible in Scala.

Abstract:

Software engineering demands generality and abstraction, performance demands specialization and concretization. Generative programming can provide both, but developing high-quality program generators takes a large effort, even if a multi-stage programming language is used.

We present lightweight modular staging, a library-based multistage programming approach that breaks with the tradition of syntactic quasi-quotation and instead uses only types to distinguish between binding times. Through extensive use of component technology, lightweight modular staging makes an optimizing compiler framework available at the library level, allowing programmers to tightly integrate domain-specific abstractions and optimizations into the generation process.

We argue that lightweight modular staging enables a form of language virtualization, i.e. allows to go from a pure-library embedded language to one that is practically equivalent to a standalone implementation with only modest effort.

The most simple concurrent language?

I am looking into a project of building decentralized concurrent functionality on a group of OS-less Illuminata X machinas
( http://www.liquidware.com/shop/show/IXM/Illuminato+X+Machina ).

As I just want something concurrent to work (say, distributed merge sort), and aren't interested in it being fancy in any way, my question goes:
Whats the most simple concurrent language out there (fewest and simplest code lines), whose functionality I can be inspired from / steal when building my system? It has to based on message passing and I generally have a soft spot for process calculi inspired languages :)

Jon Loldrup
Copenhagen