I'm trying to build a tool for Solidity static analysis. As the AST can be generated for the compiler. So I wonder if there are already tools to generate the program dependency graph for the solidity smart contract.
The Solidity Visual Developer VSCode extension offers this feature, among many others:
you can use https://github.com/ConsenSys/surya .
Surya is an utility tool for smart contract systems. It provides a number of visual outputs and information about the contracts' structure. Also supports querying the function call graph in multiple ways to aid in the manual inspection of contracts.