1. A method for generating a program, comprising: detecting a plurality of steps for performing a task on a computing device; detecting an example relating to each of the plurality of steps, wherein the example comprises input data and corresponding output data relating to the step; and for each example, determining a rule that transforms the input data to the corresponding output data based on cues comprising textual features within the input data and the corresponding output data; and generating a program for performing the task based on the rules.