Lambda the Ultimate

inactiveTopic Intentional Programming FAQ
started 3/9/2002; 4:23:37 AM - last post 3/11/2002; 10:51:53 AM
Ehud Lamm - Intentional Programming FAQ  blueArrow
3/9/2002; 4:23:37 AM (reads: 695, responses: 3)
Intentional Programming FAQ
(via comp.compilers)

Intentional Programming (IP) is an extendible programming environment based on Active Source which was being researched by Microsoft. Program source is represented as a data structure rather than plain text. One of the most exciting concepts is that you can implement a system using domain-specific abstractions.

Some of the links look interesting.

IP is related to aspect oriented programming and subject oriented programming. Last time these were discussed I mentioned my doubts about their adoption by the programming community. I am still interested to hear what others think about these ideas in general, and any practical experience you might have.

Posted to general by Ehud Lamm on 3/9/02; 4:27:36 AM

Alex - Re: Intentional Programming FAQ  blueArrow
3/9/2002; 9:24:33 AM (reads: 698, responses: 0)
This has been going for a while, so I suppose there must be something novel to it, but it seems to me that the introduction to IP could have been taken straight from Paul Graham's book 'On Lisp' - domain-specific abstractions being what Graham describes as bottom-up programming.

And wasn't subject-oriented programming just some OO variant from part of IBM where object refs were really refs to functional subsets or 'views'? I remember this as being similar to RM-ODP's notion of 'multiple interfaces'. Neither of these elaborations seems to add anything as far as I can see.

Aspect-oriented programming, on the other hand could be seen as flavour of bottom-up/intentional programming targeted at broad infrastructure functions such as persistence, security etc. Perhaps this is still where the idea can add most value, that would address Anders Hejlsberg's concern about dealing with wilfully idiosyncratic environments.

Ehud Lamm - Re: Intentional Programming FAQ  blueArrow
3/11/2002; 7:01:42 AM (reads: 688, responses: 1)
Sjoerd carried this link in his weblog. I'll try to comment on the quote his give when I am bit less tired.

Ehud Lamm - Re: Intentional Programming FAQ  blueArrow
3/11/2002; 10:51:53 AM (reads: 722, responses: 0)
The 'abstractions' discussed are not abstract concepts - we are talking about software abstractions. These depend on language features (think of high order functions/first class functions; think lazy evaluation). In extreme cases they depend on special syntax or notations (think APL or think of list comprehensions).

Thus, it is quite problematic to think of language neutral abstractions. Indeed, this is related to the lowest common denominator problem with cross-language-runtimes.

Building a language neutral theory of software abstraction may be possible, but it is far from a simple problem (my Ada-Europe'2001 paper gives some pointers). I believe that if such a (general) theory were to be built it is going to be so abstract programmers will have to map it to restricted and language based models. The theoretical frameowork will be good for, you guessed it: theoretical work.

Keywords to look for (if you want to think about abstraction, in a concrete way): category theory, algebras/co-algebras. type systems, interfaces, sepcifications, reflection etc.