NC and CNC machines are controlled by NC programs that specify tool motions and machining parameters. CNC machines evolved from early NC machines controlled by punched tapes to today's CNC machines that use computer interfaces. NC programs can be generated manually using G-code or automatically using CAD/CAM software. CNC machines offer advantages over manual machines like repeatable accuracy, complex geometry production, and reduced human errors.