# 7.3.2 Data Types and Sizes

There exist only two basic data types in CSI(C&F):

• numerical data type (floating point numbers, integers, booleans) and
• alphanumerical data type (strings)

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


CSI(C&F)'s data space consists of a linear sequence of variables with the format we have just seen. A brief example at the end of this section will figure out this concept.

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