  Question answering requiring discrete reasoning, e.g., arithmetic computing,
comparison, and counting, over knowledge is a challenging task. In this paper,
we propose UniRPG, a semantic-parsing-based approach advanced in
interpretability and scalability, to perform unified discrete reasoning over
heterogeneous knowledge resources, i.e., table and text, as program generation.
Concretely, UniRPG consists of a neural programmer and a symbolic program
executor, where a program is the composition of a set of pre-defined general
atomic and higher-order operations and arguments extracted from table and text.
First, the programmer parses a question into a program by generating operations
and copying arguments, and then the executor derives answers from table and
text based on the program. To alleviate the costly program annotation issue, we
design a distant supervision approach for programmer learning, where pseudo
programs are automatically constructed without annotated derivations. Extensive
experiments on the TAT-QA dataset show that UniRPG achieves tremendous
improvements and enhances interpretability and scalability compared with
state-of-the-art methods, even without derivation annotation. Moreover, it
achieves promising performance on the textual dataset DROP without derivations.
