Basic features
Memory
- Variables
- Pointers
- Constants
- Structs
- unions
- Enums
- Registers
- Sections
Arithmetics
- '+ - * / >> << !'
- == != || &&
Control flow
- code blocks
- functions
- If's / else's
- Loops
- Pattern matching / jump tables
Keywords
- jumps
- breaks
- returns
- syscall/ecall
- nop/ no-operation
- breakpoint
Assignments
- variables can be created without initialization
- Casting
- operator equals assignments (i += 1;)
- struct1 = struct2 copy's the data (value instead of reference)
- &struct1 = &struct2 copys the reference
Tooling
- One tool. It's dependency manager, compiler, optimizer, linker, analyzer, debugger
- One configuration file per build configuration: Covers dependecies, architecture, etc.
Proposed example for configuration named bin_arm-cortex_a9-linux-gnueabi :
Debug build, non-optimized, with debug symbols
./lang build bin_arm-cortex_a9-linux-gnueabi
Release build, optimized, debug symbols stripped
./lang build --release bin_arm-cortex_a9-linux-gnueabi
Starts executing the binary inside debugger
./lang debug bin_arm-cortex_a9-linux-gnueabi