CCG is one instantiation (Steedman, 2000), which is used by many semantic parsers, e.g., Zettlemoyer and Collins (2005).
the logical forms there can become quite complex, and in the context of program induction, this would lead to an unwieldy search space.