By the Ccide -
- A Decision Table Code Generator
The Ccide Project is pleased to present Ccide, an open-source, C language,
decision table code generator.
Files to Download:
SourceForge CCIDE Project Pagefor file downloads.
Click here to run an on-line demo.
Please note: these documents may reflect changes not yet
included in the latest release. On the other hand, the
documents here may be out of date. In other words, if you
want to see the right stuff, download the latest files.
A10. Yes. Ccide has been tested successfully
on Windows98. Other Windows platforms are currently being
tested. Download the .zip file and let me know how it goes.
- A1.Send HTML -- please. If you wish to
contribute, please include your name and contact information you wish
to have appear in the list of contributors. Please be certain that
your contribution is your own, original work. If you are aware of
some other work that might be useful, please make the responsible person
aware of the CCIDE Project.
- A2.Send code -- please. Actually, you might want to
e-mail email@example.com, first -- just to be sure no one else is working on
the same enhancement.
Please note: work has begun on optimizing the
sequence of the generated 'case' statements.
- A3.Ccide makes it easier to read your code. This helps
when building a new program and also when making changes to old programs.
It also reduces the amount of typing required. All this, should reduce
logic errors in released programs. It should also encourage you to
address more complex logic than you might otherwise attempt.
- A4.Actually, it does in some special cases. Usually,
however, all the conditional expressions are evaluated whether
or not they are required by the logic. Also, a ...FindRule function is
used to determine which rule is in effect. Another approach might avoid
this, but it also might generate multiple copies of the expressions.
There are tradeoffs between approaches, which might call for a user option
to select the approach appropriate for his situation.
- A5.Ccide is intended to generate code free of
erratic side effects. Ccide avoids erratic effects by evaluating all
conditions just once, and in the original sequence. It also generates
actions in the original sequence.
In cases where side
effects are not an issue, another, more efficient strategy can be
and is being considered.
One such case is the state machine case.
- A6.A state machine can be represented by a
simple decision table, like this:
// 0 1 2 3 4 |group[state][event] == $$
// x x x x x |if(DEBUGGING) printf("%i,%i", state,event);
// 0 1 2 3 4 |PerformActionFor$$();
// x x x x - |event = GetEvent();
// x x x x - |state = nextstate[state][event];
// x x x x - |NEWGROUP
in which there is a single condition statement with all-integer
condition entries. In the example, Ccide will use
switch(Bigstate[state][event]) ... logic, rather than a ...FindRule..
function. 4 is the final state in this example.
- A7. Sure, click here
for a real example, or see the state machine example above, or Download
the source for more examples.
- A9.The project name was changed from DTC to Ccide
in August, 2004, when Ccide was moved to
SourceForge. DTC is an
existing SourceForge project and is also heavily trademarked in the US.
DTC could be considered to be infringing on these marks. Ccide is not
so trademarked and the domain name CCIDE.COM was registered to establish
a record of use of this mark. Please e-mail firstname.lastname@example.org if you
would like to contribute to the trademark registration fee.
The CCIDE project is hosted at