archives

Ambient Oriented Programming (AmOP)

Ambient-Oriented Programming by Jessie Dedecker, Tom Van Cutsem, Stijn Mostinckx, Theo D'Hondt, and Wolfgang De Meuter. (2005). 9 pages.

A new field in distributed computing, called Ambient Intelligence, has emerged as a consequence of the increasing availability of wireless devices and the mobile networks they induce. Developing software for such mobile networks is extremely hard in conventional programming languages because the network is dynamically defined. This hardware phenomenon leads us to postulate a suite of characteristics of future Ambient-Oriented Programming languages. A simple reflective programming language kernel, called AmbientTalk, that meets these characteristics is subsequently presented. The power of the reflective kernel is illustrated by using it to conceive a collection of high level tentative ambient-oriented programming language features.

This document focuses on requirements analysis for the language design, justification for certain design decisions, and a preliminary implementation (the Ambient Talk kernel). I don't agree with all the assumptions (especially not: "Our most basic research assumption is that ambient-oriented programming languages necessarily are concurrent distributed object-oriented programming languages." Content-centric networking is also very feasible). I feel security was ignored to the design's detriment. But there are some interesting ideas - e.g. reifying communication traces to help with error recovery.

More papers are available at the AmbientTalk site, including a full thesis. AmbientTalk is a language designed to support this field of ambient-oriented programming.

Dan Vanderboom's Archetype language

Just thought the existence of Dan's Archetype language ongoing design might be of interest to LtU's readers. (Or am I missing the link somewhere?) So, quoting the overview:

[...]Archetype is a C-style (curly brace) functional, object-oriented (class-based), metaprogramming-capable language with features and syntax borrowed from many languages, as well as some new constructs. A major design goal is to succinctly and elegantly implement common patterns that normally require a lot of boilerplate code which can be difficult, error-prone, or just plain onerous to write.

Among others, I found his reflections in Part 5 - Type extensions, custom control structures quite interesting.