Last Updated: 9/17/2004; 2:06:42 PM.
Andy Roberts' Radio Weblog
This is a personal weblog. The opinions expressed here represent my own and not those of my employer.
        

Friday, September 17, 2004

Some interviews over at codegeneration.net show that there's a new buzzword that's gaining momentum - language oriented programming.

Here's my take on it:  Programming languages, up to now, have been largely thought of as general purpose.  People use these languages to create libraries and macros, and then they have to write lots of doc on how to use these libraries.

What's really going on is that the libraries are themselves extensions of the underlying languages.

A bunch of people are realizing that if there were a formal way to define a language (using some language of course), then it would be possible for people to define their language extensions using this same language - rather than using a different technique like Java docs.  In addition, if there were such a thing as a formal definition of the language, then one could auto-generate editors for creating documents in those languages.

There are actually a ton of people working on this.  Here's my quick list:

1)  Microsoft - Jack Greenfield and Kieth Short.  They call them DSL's or domain specific languages.  You can read about it at this link.

2)  JetBrains - Sergey Dmitriev is building something called a "meta-programming system", which is a system that lets you define a new language and run a program that generates various things like editors.

3)  Intentional Software - Charles Simonyi.  Same kind of thing with a focus on transformation of documents from one language rep to another using a "reduction compiler".

4)  Xactium - Andy Evans.  Provides a tool that lets you define a language as an extension/combination of other languages.

5)  IBM - really the Eclipse project on EMF - driven by Ed Merks and crew.  EMF ECore lets you define a "language" of sorts, and then the Edit and Editor plugins will generate an editor and custom command stack.

So - that's a lot.

I've thought about the work on language oriented programming, and our parametric modeling technology in The Factory.  The two are complementary.  Parametric modeling assumes that you start with a well defined "domain" or target, and then you build a set of builders for that domain.  These builders then enable users to compose "fabrication engines" - we call them models - that produce artifacts in these domain languages.  if you change the set of input parameters to a model and regenerate - you get a different instance of the domain specific output object.  This produces a kind of runtime automation that enables one to automatically morph the structure of a domain specific object without human intervention.  And this enables the automatic customization of code for syndicating apps out to partner sites - which is what the Factory is used for.

An interesting execrise would be to ultimately provide a tool that would auto-generate collections of builders - based on reading one or more language definition objects.


2:04:53 PM    comment []

© Copyright 2004 Andy Roberts.
 

September 2004
Sun Mon Tue Wed Thu Fri Sat
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
Jul   Oct


Click here to visit the Radio UserLand website.

Subscribe to "Andy Roberts' Radio Weblog" in Radio UserLand.

Click to see the XML version of this web page.

Click here to send an email to the editor of this weblog.