CNC machines allow precise and repeatable control in machining through the use of NC programs. The history of CNC began in 1949 when the US Air Force asked MIT to develop a numerically controlled machine. Modern CNC machines use computer control linked directly to the machine controller. NC programs can be generated manually using G-code instructions or automatically using CAD/CAM software. Large NC programs are often run using DNC which "drip feeds" blocks of code from an external computer to the machine controller.