Proxy applications (proxy-apps) are fundamental tools for evaluating the performance of specific workloads on high-performance computing (HPC) systems. Since the development of high-fidelity proxy-apps, which exhibit similar performance characteristics as corresponding production applications, is labor-intensive, synthetic proxy-apps are created as a useful supplement to manually-developed proxy-apps. Existing proxyapp synthesis methods for HPC applications mainly focus on either communications patterns or computation kernels. To thoroughly resemble performance characteristics of HPC applications represented by Message Passing Interface (MPI) programs, we propose Siesta, a novel framework to automatically synthesize proxyapps based on communication-computation traces. Given an MPI program, Siesta synthesizes parameterized code proxies to mimic computation behaviors in different execution periods, and combines the code snippets and MPI function records into an event trace. It then extracts program behavior patterns from the trace using context-free grammars, and finally transforms the grammars into executable code as a synthetic proxy-app of the given MPI program. We evaluate the proposed methods on representative MPI programs with different parallel scales. The results show that our synthetic proxy-apps can precisely approximate the performance characteristics of MPI programs.