Home | About | Partners | Contact Us

SourceForge Logo

Quick Links
Building XL
XL Mailing List

Understanding XL
Conceptual overview
XL examples
Inside XL
Concept Programming

In depth
Browse GIT
SourceForge Info

Other projects
GNU Project
The Mozart Project

XLR: Extensible Language and Runtime

The art of turning ideas into code

What is a "concept"?

Prev: Concept Programming


Next: The Concept Programming Process

In Concept Programming, we call a concept anything from the problem space that matters to your program. These are two important criteria:

  • We don't call a concept something that doesn't belong to the problem space. Syntactic or efficiency concerns are generally not concepts. The semi-colon at the end of a statement in C matters for most C programs (without it, they won't compile). But it is not a concept, except for the designer of a C compiler, because it doesn't represent anything in the problem space. It is a purely syntactic concern.

  • If it doesn't matter to your program, it is not a concept either. If you are designing a video-game, chances are that the quality of the user interface is paramount to the success of the game, so it is a primary concern of the problem space. However, there is no way to translate this important concern into code. Concept Programming can improve the language used to describe the user-interface, but not the quality of the user-interface itself.

Depending on the problem space being considered, a window displaying some information may be a concept; a mathematical operation, such as a linear transform, may be a concept; the synchronization between two tasks may be a concept; the transformations performed on a stream of text may be a concept. There is no precise limit on the set of concepts that programmers may need to deal with.

Programmers do not manipulate concepts directly. They deal with concept representations. The key focus of Concept Programming is how programmers transform concepts into representations. XL is an example of a language designed for such general-purpose transformations.

Prev: Concept Programming


Next: The Concept Programming Process

Copyright 2008 Christophe de Dinechin (Blog)
E-mail: XL Mailing List (polluted by spam, unfortunately)