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

Code Space

Prev: Problem Space


Next: Moore's Law and Software

The code space is the set of programs that can be written using a particular choice of development tools. If you use C, the code space is roughly defined by the syntax and semantics of the C language.

In reality, the code space bounds are rather fuzzy, since what can be written includes a notion of reasonable cost and timing. For instance, one could argue that the code space of C includes all of the code space of Ada, since an Ada compiler can be written in C. In practice, exception handling or tasking are easier to use in Ada, so one can reasonably state that they are within the code space of Ada, but outside the code space of C.

Similarly, programmers do not generally feel constrained by a particular code space, they choose it, based on their experience and how comfortable they are with a particular programming language. It is not uncommon for programmers used to a particular language to have a hard time understanding how useful a feature can be that doesn't belong to their usual code space.

For many large-scale programs, the code space of a single language is not sufficient. Programmers in that case use a variety of languages. The current top choices include Java, XML, Python, C and C++. In some cases, no existing language offers the required features, and programmers create a new code space by resorting to a domaine specific language.

The code space is the main source of artificial complexity. Its dual space from the programmers point of view is the problem space.

Prev: Problem Space


Next: Moore's Law and Software

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