扬州做网站公司/拼多多女装关键词排名
今天终于把作业交了,虽然瑕疵比较多。
作业:给出任意c源代码,输出其对应的cfg与du paths。
注:
1.在main之前声明变量时,这也是对变量的定义。比如在main之前声明:long i, j, maxi。虽然没写具体声明值是多少,但其实在编译器内部已经对其赋予了一个随机值。所以要把声明也当作对变量的定义
2.这里的du path的定义是:节点与节点之间的连接不重复出现两次。路径开头为变量的define,结尾为变量的use,在之间没有对变量的再次define,在之间有没有use都可以,只要最后一个节点为变量的use即可。
完成过程:
本来这种作业应该事先会编译原理,然后使用词法分析器与语法分析器进行分析,但我不是信院的,自己的专业课还需要继续学,所以也没时间学编译原理。自己选择这门课,纯粹是些许好奇+些许兴趣。
所以我一开始就去找软件,找python模块,看看什么可以直接完成这个作业。最后在github终于找到了一位作者写的c源代码cfg的包,名为cfg-wcec。然后我的工作在此基础上展开,完成了画出cfg的有向图以及输出某个变量的du path。
作业:
我把作业上传到了github中。说实话,我写的很烂,就是为了完成作业而已。
https://github.com/leslielee619/CFG-DUPath--assignment
另外,其他软件或模块,只要与c或python的流图分析相关的。我也列举了许多,大家可以参考一下。(都在链接里)