CodeShark is a hybrid G-code programming, editing and DNC program with an integrated CAD system. Free lite version and other free software also available. http://www.softsqad.com/
NC Verify graphically simulates the material removal process to detect program errors for milling, grinding, turning, and wire EDM machines. http://www.siriussys.com/