生成函数调用关系——急,在线等
现在在做一个东西是分析c源代码,把函数调用关系表示出来。请各位帮帮忙,用什么好处理一点。树?栈?队列?图?谢谢了
比如最后生成的调用图
main
m1 m2 m3
m11 m12 m21
[解决办法]
帮顶,这个问题挺有意思的.
[解决办法]
函数能调用本身,在离散数学里叫做自反.
函数调用其他函数.....这个叫做有向边..但应该不存在其他函数又调用这个函数的情况....
应该是个有向图,用邻接表表示的.
建好图以后怎么输出调用关系图呢..
根据我学的这点知识,这个调用是有先后次序的,用拓扑排序的知识应该可以描述出调用的先后次序...
这好像叫有向无回路图(dag图)...
不知道这种想法能不能解决这个问题.
[解决办法]
这应该涉及到编译器的语法分析了吧
最简单的就是用递归下降,用树存结构
还有LL(1),LR(1)等算法可以做语法分析
具体的LZ可以找本编译原理的书看看