The following are some basic syntax rules for AADL.
A syntax summary is provided on a AADL V2.1 syntax card
For a complete and formal definition of syntax rules, please refer to the AADL standard or the AADL book "Model-Based Engineering with AADL: An Introduction to the SAE Architecture Analysis é Design Language".
AADL entity | Rules | Examples |
|
process pr_server |
|
Component implementation name |
|
process implementation pr_server.one_threador process implementation pr_server.multi_threads |
Qualified classifier name | Component types, component implementations, and feature group types are referenced by the qualified name. They are qualified with the package name followed by "::" | aircraft::hardware::PowerPC.Mhz900or DataDictionaries::GlobalDictionary |
Nested package names | Package names can be nested, i.e., they can be a sequence of identifiers separated by "::" | aircraft::hardware |
Property sets | Property set names are single identifiers | aircraft::hardware |
Matching end | Component types, component implementations, feature group types, packages, and property sets end with the keyword end followed by their name. | end aircraft::hardware::PowerPC.Mhz900 |
Case sensitivity | AADL is case insensitive for both keywords and identifiers. | Identifiers MyHouse and myhouse are the same |
White space | space, tab, and newline are considered white space | |
Comments | Comments start with "--" and go to the end of the line. You can comment or uncomment multiple lines with the keyboard shortcut "ctrl""/" | ecu: system HardwarePlatform::cc_mcu; -- processor |
Semicolon | Semicolons (";") are used as the last symbol (terminator) in a declaration, such as a classifier declaration, a feature declaration, subcomponent declaration, or property assignment. | inport: in event port ; |
Lists and commas | Parentheses ‘(‘ and ‘)’ are used to bracket lists. Commas are used as separators between list elements. | t1: thread t in modes ( m1 , m2 ); |
Comments | Comments start with "--" and go to the end of the line | ecu: system HardwarePlatform::cc_mcu; -- processor |