There exist only two basic data types in CSI(C&F):
There is no special integer type in CSI(C&F), they are treated as a subset of floating point numbers. The range of floating point numbers depends on the system used. Strings are restricted not to exceed a maximum length of 128 characters. This seems to be a silly restriction, but as mentioned in the introduction, CSI(C&F) was not designed to be a complete, general-purpose programming language. So this restriction should be irrelevant for most tasks of constraint satisfaction problems.
The two basic data types own different semantics, but are implemented by one and the same concept. Both have the following internal representation:
name name of Variable formula stores a formula for anumerical variable or a string for an alphanumerical variable value holds the value of a numerical variable or the numerical equivalent of an alphanumerical variable
Whenever a fuzzy variable is declared or evaluated, a numerical variable is created which holds the name of the fuzzy variable, the name of the associated ParameterSet, and the defuzzified value of the fuzzy variable.
name name of FUYYZVAR formula name of PARAMETERSET object value defuzzified value of FUYYZVAR
This guarantees, that fuzzy variables, once defuzzified, can be used in other regular expressions and computations. At this time we should remember, that fuzzy variables have two representations in CSI(C&F): on the one hand they are stored in the "normal" data space so that they can be accessed like any other variable, on the other hand it's obvious, that a fuzzy variable has a second, much more complex structure for fuzzy computation too. This structure will be discussed in detail in section 7.5.
To illustrate the memory management for variables we give a short example. The following assignments:
LET Name$ = "A"
LET fahr = 0
LET celsius = (5/9)*(fahr-32)
FUZZYVAR fuzzyvar default_parameterset
SET fuzzyvar = 3.4
EVAL fuzzyvar
added to an empty data space would result in the following memory structure
name Name$ formula "A" value 64 name fahr formula "0" value 0 name celsius formula "(5/9)*(fahr-32)" value -17.77777778 name fuzzyvar formula default_parameterset value 48.33333333