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

143 lines of code

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

  • 267 instructions before optimizations.
  • 16 instructions eliminated by Temp Variables Elimination (2 passes, 6 iterations).
  • 21 instructions eliminated by Dead Code Elimination (5 iterations).
  • 3 instructions eliminated by Jump Normalization (2 passes, 5 iterations).
  • 12 instructions eliminated by Jump Optimization (5 iterations).
  • 14 instructions eliminated by Single Step Elimination (3 passes, 8 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 Optimization (3 iterations).
  • 4 loops improved by Loop Optimization.
  • 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 updated by Jump Threading.
  • 1 instructions eliminated by Unreachable Code Elimination (2 iterations).
  • 10 instructions eliminated by Print Merging.
  • 143 instructions after optimizations.
  • Code size and number of instantiations by function: Size Times AvgSize Function 92 1x 92.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)
  • Performance: parsed in 43 ms, compiled in 8 ms, optimized in 108 ms.