Appendix C : ADL : Architecture Description Language
APPENDIX C
ADL : A RCHITECTURE
D ESCRIPTION L ANGUAGE
C . 1 . K
E Y- W
O R D SALL ANY ARCHITECTURE CONFIDENCE CONNECTION DECLARATION DEFINITION ELEMENT
END ENSO EXTERNAL GENO GLOBAL INCLBASE INCLDEF MAXIMUM MEAN METRICS MINIMUM NAME OBJECT_BASE OFF ON PARAMETERS
PLAN SIMO SIMPLE SPECIALIZATION STAT STEP TRACE UNTIL
VARIANCE WATCHED
All SIMO object names All ENSO object names
C . 2 . E
X T E N D E DB
A C K U SN
A U RF
O R MHereafter a certain number of written conventions used through this appendix :
• {x} : means that x may be present zero, one or several times.
208
Appendix C : ADL : Architecture Description Language
• +{x} : means that x is present at least once.
• [x] : means that x is present or not.
• ⏐ : represents OR
• A terminal symbol which is not a character is written in capital letters without any quotations.
Database = OBJECT_BASE Identifier “;” +{SIMO_dec}
{ENSO_dec} END “.”
SIMO_dec = SIMO SIMO_obj_id “;” Param_dec [Metric_dec]
END “;”
Param_dec = PARAMETERS NAME “:=“ String “;”
{Param_ident “:=“ Number “;”}
Metric_dec = METRICS +{Metric_ident “:=“ Metric_type “;”}
Metric_type = SIMPLE ⏐ STAT
ENSO_dec = ENSO ENSO_obj_id “={“ SIMO_obj_id {“,” SIMO_Obj_id} “}”
Number = Integer ⏐ Real Integer = [“+” ⏐ “-”] +{“0..9”}
Real = [“+” ⏐ “-”] +{“0..9”} [“.” +{“0..9”}] [“e” [“+” ⏐ “-”]
+{“0..9”}]
SIMO_obj_id = Identifier ENSO_obj_id = Identifier Metric_ident = Identifier Param_ident = Identifier
Identifier = [“-”] Letter {Letter ⏐ “_” ⏐ “0..9”}
Letter = “a..z” ⏐ “A..Z”
String = “”” +{Character} “””
209
Appendix C : ADL : Architecture Description Language
Elem_def = ELEMENT Identifier “;” Declare_part [Connect_part]
[Special_part] [Plan_part] END “;”
Declare_part DECLARATION +{Inst_dec}
Inst_dec = Type_ident Var_ident {“,” Var_ident} “;”
Type_ident = Elem_ident ⏐ Predef_obj_id Var_ident = Identifier [“(“ Indice “)”]
Indice = “1..9” +{“0..9”} ⏐ Const_ident Elem_ident = Identifier
Predef_obj_id = ANY ⏐ SIMO_obj_id ⏐ ENSO_obj_id Const_ident = Identifier
Connect_part = CONNECTION +{Conn_inst}
Conn_inst = Link_name ⏐ Link_no_name
Link_name = Var_ident [.Var_ident] “<“ Link_ident “>“
Var_ident [.Var_ident] “;”
Link_no_name = Var_ident +{“,” Var_ident}“<->“ Var_ident “;”
Link_ident = Identifier
Special_part = SPECIALIZATION +{Param_spec ⏐ Metric_spec ⏐ Var_spec}
Param_spec = Path Param_ident “:=“ Num_free Num_free = Number ⏐ Free_var ⏐ Const_ident
Metric_spec = Path Metric_ident [“:” Metric_kind ] “:=“ Onoff “;”
Onoff = ON ⏐ OFF
Metric_kind = MEAN ⏐ VARIANCE ⏐ MAXIMUM ⏐ MINIMUM
⏐ CONFIDENCE ⏐ ALL
Var_spec = [Path] Var_ident “:=“ SIMO_obj_id “;”
Free_var = Identifier
210
Appendix C : ADL : Architecture Description Language
Path = +{Var_ident “.”}
Plan_part = PLAN +{Plan_def}
Plan_def = Plan_left “:=“ Plan-right “;”
Plan_left = Free_var {Ser_paral Free_var}
Ser_paral = “⏐⏐“ ⏐ “,”
Plan_right = Number_list ⏐ Range ⏐ Filename Number_list = Number +{“,” Number}
Range = Number UNTIL Number STEP Number Filename = String
Program = ARCHITECTURE Identifier “;” Global_part [Define_part] Declare_part [Connect_part]
[Special_part] [Plan_part] END “.”
Global_part = GLOBAL Include_base {Global_const}
Include_base = INCLBASE Filename_DB “;”
Filename_DB = Filename
Global_const = Const_ident “:=“ Num_str “;”
Num_str = Number ⏐ String
Define_part = DEFINITION {Incl_def} {Elem_def}
Incl_def = INCLDEF Filename_ExD “;”
Filename_ExD = Filename
External_def = EXTERNAL +{Elem_def} END “.”
211