The CONVECS team is pleased to announce
that version 3.6 of the TRAIAN compiler for LOTOS NT is available.
TRAIAN 3.6 brings twenty-four language changes, twelve library and
code-generation changes, and five bug fixes (see below their description).
TRAIAN 3.6 introduces various changes to the LOTOS NT language in order to further align it with the LNT language supported by the CADP toolbox. The LOTOS NT Reference Manual and the demo examples have been updated to reflect these changes.
array [m .. n] of T range m .. n of T set of T sorted list of T sorted set of T X:T where V (i.e., predicate types)Code generation for such type definitions is not yet implemented; TRAIAN 3.6 displays an error message when they are used. See item 327 in the HISTORY.txt file.
type implementedby is A, B, C end typeConversely, it is now forbidden to insert spaces between "!" and pragma names. See item 336 in the HISTORY.txt file.
!int_bits !int_check !int_inf !int_sup !nat_bits !nat_check !nat_inf !nat_sup !num_bits !num_card !string_cardSee item 337 in the HISTORY.txt file.
!bits n !card n !listThe latter pragma is automatically set for the LOTOS NT types defined as "list", "sorted list", "set", and "sorted set". See item 339 in the HISTORY.txt file.
traian_upc 2021-LOTNT-ENUMERATEDBY [<file> or <directory>]See item 340 in the HISTORY.txt file.
traian_upc 2022-LOTNT-OCT [<file> or <directory>]Also, octal constants may now contain underscore characters, provided that they are neither initial, consecutive, nor terminal. See item 345 in the HISTORY.txt file.
traian_upc 2022-LOTNT-HEX [<file> or <directory>]Also, hexadecimal constants may now contain underscore characters, provided that they are neither initial, consecutive, nor terminal. See item 346 in the HISTORY.txt file.
traian_upc 2022-LOTNT-UNDERSCORES [<file> or <directory>]See item 348 in the HISTORY.txt file.
traian_upc 2022-LOTNT-REALS [<file> or <directory>]See item 349 in the HISTORY.txt file.
type OP is *, + end typethe following function:
function F (X: OP): bool is case X in * -> return true | + -> return false end case end functionmust be rewritten as follows:
function F (X: OP): bool is case X in *() -> return true | +() -> return false end case end functionSee item 359 in the HISTORY.txt file.
traian_upc 2022-LOTNT-FNT-TNT [<file> or <directory>]will rename these files automatically. See item 364 in the HISTORY.txt file.
function - (X1: NAT, X2: NAT): NAT function mod (X1: NAT, X2: NAT): NAT function div (X1: NAT, X2: NAT): NAT function INT (X: NAT): INT function CHAR (X: NAT): CHAR function REAL (X: NAT): REAL function div (X1: INT, X2: INT): INT function mod (X1: INT, X2: INT): INT function rem (X1: INT, X2: INT): INT function NAT (X: INT): NAT function CHAR (X: INT): CHAR function REAL (X: INT): REAL function / (X1: REAL, X2: REAL): REAL function INT (X: REAL): INT function NAT (X: STRING): NAT function INT (X: STRING): INT function REAL (X: STRING): REALSee item 342 in the HISTORY.txt file.
TRAIAN_EQ_module_type -> TRAIAN_EQ_type TRAIAN_GE_module_type -> TRAIAN_GE_type TRAIAN_GT_module_type -> TRAIAN_GT_type TRAIAN_LE_module_type -> TRAIAN_LE_type TRAIAN_LT_module_type -> TRAIAN_LT_type TRAIAN_NE_module_type -> TRAIAN_NE_type TRAIAN_FUNCTION_module_function -> TRAIAN_FUNCTION_function TRAIAN_ITERATE_FIRST_module_type -> TRAIAN_ITERATE_FIRST_type TRAIAN_ITERATE_NEXT_module_type -> TRAIAN_ITERATE_NEXT_type TRAIAN_PRINT_module_type -> TRAIAN_PRINT_type TRAIAN_STRINGIFY_module_type -> TRAIAN_STRING_type TRAIAN_TYPE_module_type -> TRAIAN_TYPE_typeUsers should upgrade their handwritten C files by running the following command:
traian_upc 2022-LOTNT-C-NAMES-1 [<file> or <directory>]See item 353 in the HISTORY.txt file.
TRAIAN 3.6 can be freely downloaded from the TRAIAN Web Page located at: