Mindcode is a high-level language that compiles down to Mindustry Logic - mlog. Mindcode includes higher-level constructs, such as expressions, user-defined functions and control statements. Here are some examples to give you an idea how to use Mindcode:

129 lines of code

137 lines of code

Bug reports, suggestions and questions are welcome at the project page.

  • 270 instructions before optimizations.
  • 16 instructions eliminated by Temp Variables Elimination (2 passes, 6 iterations).
  • 21 instructions eliminated by Dead Code Elimination (6 iterations).
  • 3 instructions eliminated by Jump Normalization (2 passes, 6 iterations).
  • 18 instructions eliminated by Condition Optimization (7 iterations).
  • 14 instructions eliminated by Single Step Elimination (4 passes, 10 iterations).
  • 1 instructions eliminated by Expression Optimization (3 iterations).
  • 4 instructions modified by If Expression Optimization (3 iterations).
  • 38 instructions eliminated by Data Flow Optimization (5 passes, 21 iterations).
  • 1 loops improved by Loop Hoisting.
  • 2 instructions added by Loop Rotation (3 iterations).
  • 4 loop conditions were partially rotated.
  • 6 instructions eliminated by Loop Unrolling (11 iterations).
  • 3 loops unrolled by Loop Unrolling.
  • 4 instructions eliminated by Function Inlining (11 iterations).
  • 5 function calls inlined by Function Inlining.
  • 3 instructions eliminated by Jump Straightening (7 iterations).
  • 3 instructions updated by Jump Threading.
  • 1 instructions eliminated by Unreachable Code Elimination (3 iterations).
  • 10 instructions eliminated by Print Merging.
  • 137 instructions after optimizations.
  • Code size and number of instantiations by function: Size Times AvgSize Function 86 1x 86.0 <no function> 18 1x 18.0 inline void findLinkedBlocks(in title, in message, in linkMap...) 15 1x 15.0 def waitForFreeUnit(in message, in preface, in unit_type, in initial_flag) 10 5x 2.0 def limit(in n, in min, in max) 8 1x 8.0 void replace(in x, in y)
  • Size: 137 instructions, performance: parsed in 161 ms, compiled in 32 ms, optimized in 354 ms.