Cheddar ADL

In this page, we provide practical instructions to modify models in Cheddar ADL and generate Ada and Java code. A description of the Cheddar ADL is available in the Cheddar Architecture Description Language reference guide

Cheddar ADL models are written in the EXPRESS language. Ada and Java code generation is done by Platypus.

The models and the code generator are both located in the trunk/src/platypus folder.

Source files

  • The source files are located at trunk/src/platypus/src/cheddar-dev. They are files with .exp extension.

    • ARINC653.exp : configuration model of ARINC 653
    • cheddar_adl.exp : description of Cheddar ADL
    • cheddar_adl_java.exp : description of Cheddar ADL but limited for Java code generation
    • cheddar_api.exp : description of the API to call the kernel
    • cheddar_config.exp : constants in Cheddar framework (kernel and GUI)
    • cheddar_graphical_editor.exp : entities for Cheddar GUI
    • cheddar_language.exp : model of Cheddar scheduler language
    • cheddar_mapping.exp :
    • cheddar_optimization.exp : to be removed
    • cheddar_result.exp : descriptions of Cheddar framework result
    • Cheddar_SymbolicLanguage.exp :
    • cheddar_types.exp : primitive types of Cheddar ADL
    • DFG_Nodes.exp :
    • express2cheddar.exp :
    • platypus-toolbox.exp :
    • cheddar_design_patterns.exp, cheddar_applicability_constraints.exp, FT_Taxonomy.exp, Applicability_Constraints_Main_Structure.exp, DP_Graph.exp : model of design patterns

Code generation scripts

Four scripts are used to generate Ada and Java code from Cheddar ADL models.

$ ./compile.sh
$ ./generate.sh
$ ./split.sh
$ ./move.sh

compile.sh

Compile Cheddar ADL models in the Pharo virtual machine

Note : due to some cyclic dependencies between cheddar_adl.exp and cheddar_mapping.exp and the way they are handled by Platypus, the compilation process can be in a blocked state and cannot be fixed by just simply undoing changes. If that happens, the solution is to delete and download again the shared folder. A good practice is to make sure that changes cheddar_adl.exp are stable before updating cheddar_mapping.exp

generate.sh

Generate Ada and Java code. The results are in generated_code folder. Attention, Ada code is generated into only two .adb and .ads files.

split.sh

Split the generated Ada code into smaller files

move.sh

Move files to their corresponding folders in the framework