The Xc++ language is an extension of C++.
Most of the language extensions involve a keyword beginning with a dollar sign ($) character, to make it clear where the language constructs are not straight C++.
In some cases Xcpp generates a warning not an error. See all the warning codes.
Libraries and executables written in Xc++ must link with the cxObject library.
Xc++ includes a macro preprocessor language which is similar to the normal C++ preprocessor language, but much more powerful. For example, it allows for static type checking of macro arguments, nested macros, recursive macros and loops. It also provides access to the Python interpreter during the execution of the front end.
Xc++ interfaces
are based on a proposal for C++ interfaces by Christopher Diggins.
The $interface
directive allows for polymorphic interfaces to be defined, in a
way that is more flexible and less type intrusive than the normal
support for dynamic polymorphism in C++ using Abstract Base Classes.
Xc++ mixins provides special syntax to support C++ inherited mixins.
Xc++ ADTs provides a convenient syntax for defining a forward declared type which is only accessed through a C API.
The Ceda Data Model (CDM) refers generally to the form of data modelling used in ceda.
A CDM schema refers to a particular schema (a set of ceda type definitions).
A CDM database is a ceda database that conforms to some CDM schema. A CEDA Database Management System (CDBMS) refers to a DBMS supporting the CDM.
The CDM is motivated by the following
A number of basic types are supported, such as bool, int32 and float64. These are platform independent types, and therefore are appropriate for persisting in a database.
The Ceda Data Model (CDM) allows for defining:
User defined types are defined in terms of the platform independent basic data types
There are three different ways of defining string data types