Feeds

Dip into concept programming

Do what it says on the tin

SANS - Survey on application security programs

It's always a good time for a new paradigm in software development and one of the latest is concept programming. Originated as a private project by Hewlett Packard (HP) software engineer Christophe de Dinechin in 2000, interest in concept programming is on the rise following publication of an updated description late last year.

Dinechin says that concept programming helps to cope with the increasing complexity in software by offering a new way to look at how software is conceived and created.

"It's an idea that applies at lots of different levels from assembly code and C programming up to high-level things like wikis. The reason it works for all these environments is because it focuses on the difference between what is in your head and what ends up in the code," Dinechin told Register Developer in an interview.

Based on the principle enshrined in Wirth's Law that software gets slower faster than hardware gets faster, Dinechin sees the software creation process falling behind the pace of hardware development. He argues that concept programming is the next step towards reducing complexity.

The basic idea is simple: program code should reflect the concepts it represents - or it should do what it says on the tin. Unfortunately this simple statement hides a world of complexity, and this is what Dinechin has spent the last eight years trying to unravel.

As part of this process he came up with a set of abstract, pseudo metrics to help apply concepts to software development. These include syntactic noise, which measures the visible representation of the code (the tin), and semantic noise, which measures how accurately the code represents the concept behind the application (the contents of the tin).

Dinechin's day job working on development of HP's Integrity virtual machine technology has meant progress has been slow. In 2000 he set up an open source project to develop a programming notation called XL that could represent what he sees as the important ideas in concept programming.

"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," Dinechin told Reg Dev.

He added that the deterministic structure of other programming notations goes against one of the important principles of concept programming - flexibility: "It's down to the old saying that, to someone with a hammer every problem is a nail. When you program in Smalltalk, for example, everything looks like an object. With XL, I wanted to create a notation that could be used in many different environments."

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."

He went on to say he hopes the freedom inherent in the XL definition will attract others to build additions under the open source process: "My hope is that we can create an ecosystem around XL. I would like someone to introduce additional things - like aspects, for example."

When Dinechin published the first fruits of his work on XL in 2002 it provoked a heated discussion among developers. He has used the input from this and other online discussions to refine the definition of concept programming and, importantly, its practical application to software development.

"I apply some of these ideas in my day job - but I would like to see concepts expand further into the developer community. There are some signs of it filtering through - in C++ for example. But the use of concepts there is limited to a means of naming a category of templates. This is only a small subset of what I mean by concept programming," Dinechin noted.

Dinechin emphasized his view of concept programming should not be confused with concept-oriented programming - an idea proposed by Brian McConnell in 1999. The term concept-oriented programming has also been used to propose extensions to object-oriented programming in a recent paper by Alexander Savinov of the University of Bonn.®

3 Big data security analytics techniques

More from The Register

next story
Next Windows obsolescence panic is 450 days from … NOW!
The clock is ticking louder for Windows Server 2003 R2 users
Ubuntu 14.04 LTS: Great changes, but sssh don't mention the...
Why HELLO Amazon! You weren't here last time
This time it's 'Personal': new Office 365 sub covers just two devices
Redmond also brings Office into Google's back yard
Half of Twitter's 'active users' are SILENT STALKERS
Nearly 50% have NEVER tweeted a word
Ditch the sync, paddle in the Streem: Upstart offers syncless sharing
Upload, delete and carry on sharing afterwards?
Microsoft TIER SMEAR changes app prices whether devs ask or not
Some go up, some go down, Redmond goes silent
Batten down the hatches, Ubuntu 14.04 LTS due in TWO DAYS
Admins dab straining server brows in advance of Trusty Tahr's long-term support landing
Red Hat to ship RHEL 7 release candidate with a taste of container tech
Grab 'near-final' version of next Enterprise Linux next week
Windows 8.1, which you probably haven't upgraded to yet, ALREADY OBSOLETE
Pre-Update versions of new Windows version will no longer support patches
prev story

Whitepapers

Mainstay ROI - Does application security pay?
In this whitepaper learn how you and your enterprise might benefit from better software security.
Combat fraud and increase customer satisfaction
Based on their experience using HP ArcSight Enterprise Security Manager for IT security operations, Finansbank moved to HP ArcSight ESM for fraud management.
The benefits of software based PBX
Why you should break free from your proprietary PBX and how to leverage your existing server hardware.
Top three mobile application threats
Learn about three of the top mobile application security threats facing businesses today and recommendations on how to mitigate the risk.
3 Big data security analytics techniques
Applying these Big Data security analytics techniques can help you make your business safer by detecting attacks early, before significant damage is done.