ASSL Autonomic System Specification Language

ASSL Grammar

ASSL Notation

close window
ASSL Meta Grammar
ASSL Meta Grammar

ASSL is a declarative specification language for autonomic systems (ASs) with well-defined semantics. The language provides a powerful formal notation that enriches the underlying logic with modern programming language concepts and constructs such as inheritance, modularity, type system, and high abstract expressiveness. As a formal language, ASSL defines a neutral (i.e., implementation-independent) representation for ASs described as a set of interacting autonomic elements.
  The picture shows a generic meta-grammar in Extended Backus-Naur Form (BNF) for ASSL. It presents syntax rules for specifying ASSL tiers. Note that this meta-grammar is an abstraction of the ASSL grammar, which cannot be presented here due to the complex structure of the ASSL specification model, where each tier has its own syntax and semantic rules. As shown in the grammar above, an ASSL tier is syntactically specified with an ASSL tier identifier, an optional name and a content block bordered by curly braces. Moreover, we distinguish two syntactical types of tier: single tiers (Tier) and group tiers (GroupTier), where the latter comprise a set of single tiers. Each single tier has an optional name (TierName) and comprises a set of special tier clauses (TierClause) and optional data (Data). The latter is a set of data declarations and statements. Data declarations could be:

  1. type declarations;
  2. variable declarations;
  3. collection declarations.
Statements could be:
  1. loop statements;
  2. assignment statements;
  3. if-then-else statements;
  4. collection statements.

Statements can comprise Boolean and numeric expressions. In addition, although not shown in the grammar above, note that identifiers participating in ASSL expressions are either simple, consisting of a single identifier, or qualified, consisting of a sequence of identifiers separated by "." tokens.

top Close

Website Curator - Emil Vassev
Last modified on April 12, 2010