G-code CNC: understanding and using machine tool programming language