  The problem of code generation from textual program descriptions has long
been viewed as a grand challenge in software engineering. In recent years, many
deep learning based approaches have been proposed, which can generate a
sequence of code from a sequence of textual program description. However, the
existing approaches ignore the global relationships among API methods, which
are important for understanding the usage of APIs. In this paper, we propose to
model the dependencies among API methods as an API dependency graph (ADG) and
incorporate the graph embedding into a sequence-to-sequence (Seq2Seq) model. In
addition to the existing encoder-decoder structure, a new module named
``embedder" is introduced. In this way, the decoder can utilize both global
structural dependencies and textual program description to predict the target
code. We conduct extensive code generation experiments on three public datasets
and in two programming languages (Python and Java). Our proposed approach,
called ADG-Seq2Seq, yields significant improvements over existing
state-of-the-art methods and maintains its performance as the length of the
target code increases. Extensive ablation tests show that the proposed ADG
embedding is effective and outperforms the baselines.
