BT

Your opinion matters! Please fill in the InfoQ Survey!

Concept Programming

| by Ian Roughley Follow 0 Followers on Jan 24, 2008. Estimated reading time: 1 minute |

Concept programming started in 2000 as a private project in Hewlett Packard (HP) by Christophe de Dinechin, and is a way to

Cope with the increasing complexity in software by offering a new way to look at how software is conceived and created

In many ways, concept programming is solving the same problems as Domain Specific Languages.  However the approaches are different. Rather than using a specific programming language, Christophe is creating XL - a general programming language.  The reasons for doing this appear in an article for the RegDeveloper where he states:

The limitation with existing notations was that it was hard to find ways to add elegant extensions to them. You can extend languages like Lisp and its derivatives - but the problem is to get the extensions to look the way you want them to

Furthermore, the article goes on to explain

One of the intriguing aspects of XL is it has no fixed keywords - relying on what Dinechin describes as "shape": "XL does not use keywords - only a single syntax which can parse just about anything. The look of it is standard, it relies on a very small number of parse trees and instead of keywords it is based on the shape of the parse tree. This means you can play with it and experiment by adding things to it quickly."
In a presentation by Christophe de Dinechin, he expands on the article, arguing that even simple problems are hard to implement in todays programming languages.

There is a gap between:

  • Concepts, in your head
  • Representations of concepts, in the code

Concept Programming is all about this gap

He continues on to say (that concept programming will)

Make the code “look like” the concept

  • Similarity in structure, behavior, locality
  • Principle of least surprise

Along with the concept, Christophe defines some pseudo-metrics.  These are highly subjective and not easily measurable, but they do provide a way to communicate information.  The pseudo-metrics he outlines are:

Syntactic Noise

  • Form that doesn’t map to the problem space

Semantic Noise

  • Meaning that doesn’t map to the problem space

Bandwidth

  • How much of the problem space is covered?

Signal/Noise Ratio

  • How much code actually deals with real problems?

To learn more about XL and concept programming, the XL project can be found at http://xlr.sourceforge.net.

Rate this Article

Adoption Stage
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Tell us what you think

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Io language by Emil Vladev

There is already a language that has no keywords and uses an AST in it's core. It's also fully reflective (more than ruby!). It's name - Io language (www.iolanguage.com). Have a look at the site to see what other ideas are behind it!

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Email me replies to any of my messages in this thread

1 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT