Gcmc is a front-end language for generating G-code, SVG, and DXF for CNC mills, lathes, laser cutters, and other numerically controlled machines employing G-code, SVG, or DXF. The language is a context-free grammar created to overcome the archaic format of G-code programming, but can be used more generally for many targets. Gcmc aims to be more readable and understandable than G-code and enable programmatic designing. Gcmc makes extensive use of vector mathematics to support the 3D nature of CNC machining. It handles units as millimeters, mils (inch), degrees, and radians and performs automatic conversions where necessary.
gradle-sablecc-plugin is a gradle plugin which creates parsers using SableCC. SableCC supports automatic CST-to-AST transformation, emits all the visitor patterns and analysis helpers you will likely ever need, and is LR, not LL(k). Many example grammars are available for modern languages; the author of this plugin has written dozens.
Nimrod is a statically typed, imperative programming language that tries to give the programmer ultimate power without compromising on runtime efficiency. This means it focuses on compile-time mechanisms in all their various forms. Beneath a nice infix/indentation based syntax with a powerful (AST based, hygienic) macro system lies a semantic model that supports a soft realtime GC on thread local heaps. Asynchronous message passing is used between threads, so no "stop the world" mechanism is necessary. An unsafe shared memory heap is also provided for the increased efficiency that results from that model.
Java Grinder takes Java byte-code from a class file and compiles it into an assembly code text file that can be assembled and run on microcontrollers and CPUs including MSP430, dsPIC, 6502 (Commodore 64), 68000, ARM, and MIPS. A Java API is provided for dealing with SPI, GPIO, Commodore 64 hardware, and more.
The Go Programming Language (Go) is an expressive, concise, clean, and efficient language with concurrency mechanisms that make it easy to write programs that get the most out of multicore and networked machines. Its novel type system enables flexible and modular program construction. Go compiles quickly to machine code yet has the convenience of garbage collection and the power of run-time reflection. It's a fast, statically typed, compiled language that feels like a dynamically typed, interpreted language.