c# – .NET的常量传播库
发布时间:2020-12-15 05:39:41 所属栏目:百科 来源:网络整理
导读:是否存在用于抽象静态分析的开源.NET(C#/ F#)库?目前我对常数传播算法很感兴趣. 它应该是抽象的(语言独立的)和开源的,因为我想用它作为自定义算法实现的基础. 谢谢. 解决方法 库 Mono.Cecil几乎就是你想要的.它是开源的,语言抽象的,作为奖励,它是超级抛光,
是否存在用于抽象静态分析的开源.NET(C#/ F#)库?目前我对常数传播算法很感兴趣.
它应该是抽象的(语言独立的)和开源的,因为我想用它作为自定义算法实现的基础. 谢谢. 解决方法
库
Mono.Cecil几乎就是你想要的.它是开源的,语言抽象的,作为奖励,它是超级抛光,快速和稳定.
但它并不完全是你想要的,因为Cecil不分析C#,VB.NET或F#源代码,但它分析程序集文件(dll和exe)和程序集中包含的IL代码.对于许多静态分析区域来说,它已经足够了,但是对于不断传播(我猜你的意思是文字常量,如const string STR =“MyString”;或者const int INT = 12345;)在编译时会丢失信息,因为常量值是硬编码的,代替常量使用.塞西尔也不适合Abstract Syntax Tree分析. 您还可以查看Microsoft Roslyn.与Cecil相反,Roslyn解析C#和VB.NET源代码,非常适合Abstract Syntax Tree分析,但它不是开源的,不支持F#,并且肯定会有变化,直到它将成为RTM,明年我会说Visual Studio 2014,(但这只是我的猜测). (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |