- values and types (types of values, types of variables).
- literal values of base types.
- types (base and others).
- base types (numeric, textual, others).
- other types, beyond base.
- compound types (lists, mappings, objects) and accessing ( read , write ).
- values as literals, again (json literal as a compound literal).
- operators and expressions.
- expressions as composition of operators.
- arithmetic operators.
- boolean logical operators.
- quantitative comparison operators.
- other operators.
- variables
- variable declaration (name and type , scope , modifiers).
- assign operation (value to be assigned to a variable).
- initialization (first value assigned, initial value).
- variables with one single fixed type or not (type chosen in a variable declaration or not).
- constants variables (assigned once).
- instructions of control flow also with blocks of instructions and memory operations.
- [memory.] "assignment" instruction (instruction and operator).
- [memory.] pure functions (no side effects on memory).
- [memory.] "function call" instruction (input and output).
- [flow: sequence.] blocks of instructions.
- [flow: cycle.] "while" instruction with 1 block of instructions.
- [flow: branching.] "if" instruction with 1 or 2 blocks of instructions.
- functions (declaration and call).
- functions as values (that can be assigned to variables etc).
- function call (input and output of values).
- function declaration syntax (name or not, arguments or not, block of instructions).
- arguments (generic input values for functions) and parameters (actual values passed to functions).
- "return" instruction.
- variadic functions: quantity of arguments is variable.