Mapping ODL_i3 to OLCD




Base Types Collections Elements
ODL OLCD
any top
boolean bool
char string
double real
float real
int integer
long integer
short integer
string string
unsigned short integer
unsigned long integer
ODL OLCD
type [] (arrays) < type > (list of)
list < > (list of)
bag { } (set of)
set { } (set of)
ODL OLCD
interface prim
view virt
const btype
struct type
typedef type
Concept mapped Description
Union between interfaces bodies In olcd does not exist -yet- the concept of union or or. All attributes of all interfaceBodies of an interface are mapped as attributes in olcd. Attributes with the same name are duplicated using unique names.
Example:
interface Course
 ( source object Univers
   extent Courses 
   key (course_name) )
{  attribute string course_name;
   attribute Professor taught_by;  }
union Course_1 
{  attribute string course_name;
   attribute string course_description;
   attribute Professor taught_by;  };
is mapped as:
prim Course = ^ [ 
      course_name : string , 
      taught_by : Professor , 
      course_desc : string , 
      course_name0 : string , 
      taught_by0 : Professor ] ;