17. One or more computer-readable hardware memory devices for storing computer-readable instructions, the computer-readable instructions providing a program generation system when executed by one or more processing devices, the computer-readable instructions comprising code configured to: detect steps for performing a task and the actual input data for the task; detect an input-output example relating to each step; for each input-output example, determine suggested rules that define a transformation of input data to corresponding output data for the input-output example based on cues comprising textual features within the input data and cues comprising textual features within the corresponding output data; for each input-output example, rank the suggested rules according to a probability that each suggested rule transforms the input data to the corresponding output data; for each input-output example, specify a rule to be used for performing a step of the task represented by the input-output example based on the ranking of the suggested rules; and generate a program for performing the task based on the specified rules.
18. The one or more computer-readable hardware memory devices of claim 17 , wherein the computer-readable instructions comprise code configured to perform the task by transforming the input data for the task to the desired output data using the program.