Fractal | Fractal ADL | Cecilia Examples | Minus
 

Overview

The Cecilia ADL Language is an extension of the Fractal ADL language, and you are suggested to look at the Fractal ADL Tutorial to have a full understanding of the concepts behind it. Basically, the latter is an extensible XML based language which allows the programmer to describe software configurations in terms of interfaces, attributes, component compositions and bindings.

See the Helloworld example for a concrete basic example of the Cecilia ADL language.

Grammar Specification

The ADL has a very simple XML structure and a straightforward grammar.

In the following description, optional XML attributes will be indicated in italic.


definition: a component architecture definition

attributes:

  • name: the name of the component definition
  • arguments: the comma separated argument names which can customize the definition
  • extends: specifies the comma separated names of the extended definitions

sub-elements: comment*, interface*, component*, binding*, content?, attributes?, controller?, template-controller?, logger?, virtual-node?, coordinates*, output?


component: a component instance definition

attributes:

  • name: the name of the component instance
  • definition: specifies the comma separated names of the component definitions
  • startOrder: specifies the start order index of the component instance among all the sub-components of the surrounding composite component. Sub-components are started from the lowest startOrder index to highest one; sub-components that do not specify a startOrder index are started at last. StartOrder indexes do not have to be contiguous. The start order of sub-components that have the same index is unspecified.

sub-elements: comment*, interface*, component*, binding*, content?, attributes?, controller?, template-controller?, logger?, virtual-node?, coordinates*, output?


interface: a component interface definition

attributes:

  • name: the name of the interface
  • role: the role of the interface, which can be client or server
  • signature: the signature name of the interface
  • contingency: indicates if the interface is mandatory or optional. Default is mandatory
  • cardinality: indicates if the interface accepts multiple connections (collection) or not (singleton). Default is singleton.

sub-elements: comment*


binding: a binding definition

attributes:

  • client: the component interface acting as client for this binding
  • server: the component interface acting as server for this binding

sub-elements: comment*


attributes: component attribute set definition

attributes:

  • signature: the signature name of the attribute structure

sub-elements: comment*, attribute*


attribute: attribute assignment definition

attributes:

  • name: the name of the attribute field
  • value: the value of the attribute field

sub-elements: comment*, [Parsed Character DATA]

Parsed Character DATA and a 'value' attribute of the attribute XML element cannot be simultaneously present.


controller: controller generator specification. If this tag is not used, a default controller generator will be used.

attributes:

  • desc: the descriptor of the controller generator
  • lang: the language in which the controller interfaces must be implemented by the generator. By default, the language value is the same as the content implementation language.

sub-elements: comment*


content: primitive component implementation specification

attributes:

  • class: the implementation file name without its language indicator extension
  • hasConstructor: specifies if the implementation of the component defines a constructor. Default is false
  • hasDestructor: specifies if the implementation of the component defines a destructor. Default is false
  • language: specifies the language of the implementation file

sub-elements: comment*, include*, cflag*, ldflag*


include: a file making part of the implementation module of the component. The file that is referenced with this tag will be considered as an implementation file. In difference with the content class file, an included file cannot declare its own instance data but can use the instance data that is defined in the content class.

attributes:

  • file: the implementation file name without its language indicator extension

sub-elements: -


cflag: one or more compilation flags to be passed to the C compiler

attributes:

  • value: c-flag to be passed to the C compiler

sub-elements: -


ldflag: one or more linker flags to be passed to the binary object linker

attributes:

  • value: ld-flag to be passed to the object linker

sub-elements: -


comment: a tag to include commentaries in ADL descriptions

attributes:

  • text: the comment text
  • language: specifies the language of the comment

sub-elements: -

 
2007-2009 © ObjectWeb Consortium  | Last Published: 2009-04-21 13:48  | Version: 2.1.0