aime is an imperative procedural programming language, with a C inspired syntax.
aime is a high level programming language, with fully automated memory management.
aime programs are sequences of declarations and instructions (statements). Control statements allow conditional and cyclic code execution and include the ‘if’, ‘while’, ‘do’ ‘while’ and ‘break’.
aime programs may be non procedural (featuring no functions) or procedural, case in which every non function declaration and every statement belongs to a function. The aime defined functions may return values. When they do, they feature exactly one and final ‘return’ statement.
Functions have ordinarily a fixed number of parameters, of defined types. Variadic function definitions and function definitions with parameters of undefined type are allowed.
Function arguments may be passed both by value and reference.
Function parameters may be accessed both by their variable name or by their position (index) in the function parameters list.
aime is a statically typed language, in the sense that the type of every (sub)expression may be derived from the code source.
aime is a strongly typed language, though a number of implicit convertions between related types such as the intrinsic numerical types are performed in certain contexts.
aime features a mixed type system, with data types ranging from immediate value types to fully referable types. The intrinsic types belong with the former. The referable data types allow the same datum (object) to be referred multiple times. No restrictions are placed on how objects refer one each other.
aime sources may be run through the C preprocessor before being passed to the aime interpreter.
Comments are ‘#’ led and last until the end of line. C-preprocessed sources will allow C type comments.
aime is a case sensitive language, with upper cases not being equivalent with lower cases (A is not the same with a).
Functions and variables are identified by their name, with identifiers being sequences of characters starting with a letter of a ‘_’ sign and continuing with letters, digits and ‘_’ signs.