archives

Timor: adding "qualifying" and "attribute" types to the OO realm.

I'm currently learning about somebody's home-grown distributed object system in Java, which makes lots of use of source-code augmentation; you run your code through a processor that adds magic code to your .java file to support distributivity. It kinda sucks because there's all this extra gunk that is either missing and you don't realize it, or is there and is in your way and has scary comments around it saying it is auto-generated code and shouldn't be touched. Timor will supposedly help make component-based reuse a reality and lets you augment things without disturbing the originals, so that sounds nice to me just now. (Not that I will get to use it any time soon, probably.) Maybe it is all just fancy-talk for AOP?

Language-spotting

I've been reading LtU for about a year, and have always found things here that I'd never find on my own -- but one thing I haven't yet found anywhere on the web is a comprehensive database of PLs and PL implementations. Not just a simple list, but with detailed entries that can be searched on multiple attributes.

There is The Language List which I've known about for awhile, but just has textual descriptions which are just one-liners for many languages. I've recently discovered HOPL, which explicitly represents relations between nodes (e.g. influenced-by, implementation-of) and has a search interface. There's even a taxonomy which is interesting, if a bit inscrutable. Even the venerable Wikipedia has good info if you're willing to follow the links.

These lists focus on history -- I'd like deeper info on the size and shape of the languages and the implementations. For instance, I'd like to ask how a question like: how many BASICs ran in 16K or less of memory? Or: which languages that can evaluate their own code at runtime existed before 1970?

I wonder if any attempts have been made to develop such a database, and if it's reasonable to do so. You could end up with quite a lot of attributes for each PL, and some of the choices would be pretty arbitrary (and perhaps controversial). I'd like to ask those who have seen attempts at this before -- would such a database be a useful resource, or just an obsessive-compulsive enterprise?

Narrative Javascript

I was going to post this to the front page, but it's already a Forum Topic. So go there to read about a preprocessor that adds continuations to JavaScript by transforming to CPS (I think).

Javascript department

re the ongoing poll...

Personally, I don't like departments limited to a single language, unless I feel some serious language innovation is taking place, or some seriously cool hacking.

Application specific scripting languages belong to the DSL department. Internet applications usually go in the XML department (which was never restricted just to XML).

I don't want a scripting department (I don't really like the term "scripting languages").

But JS may warrant a department even after considering these reservations. Opinions?

The Weird World of Bi-Directional Programming

Benjamin C. Pierce. The Weird World of Bi-Directional Programming, March 2006. ETAPS invited talk.

This nice set of slides (related to Harmony) begins with a detailed exploration of the design space for lenses (the bi-directional constructs), which is quite fun even if you aren't interested in the the rest of the presentation.

It's hard to convey to people what language design is about. I think these slides are a nice example. The process includes exploring various use cases, trying to come up with reasonable semantics, and specifying these decisions formally.

Don't worry: Types are part of the story, as well...