Producing robust programs