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.