从Python到CIL(C中间语言)的翻译
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了从Python到CIL(C中间语言)的翻译,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1120字,纯文字阅读大概需要2分钟。
内容图文
![从Python到CIL(C中间语言)的翻译](/upload/InfoBanner/zyjiaocheng/653/8ea3840d63ea4bd1bc8c2aa9b99249b6.jpg)
我最近在Python源代码上进行了静态分析.
我们小组中已经有用Ocaml编写的CIL(C中间语言)静态分析器.我们要重用此分析器,因此我们的理想方法是将Python转换为CIL.
当前,我使用Python内置的ast模块将Python解析为Python AST.然后,我将ast.dump打印的Python AST转换为C AST.考虑到C AST to CIL API和静态分析器均以Ocaml编写.我选择Ocamllex& Ocamlyacc将Python AST解析为C AST.但是,存在一些大问题.
ast.dump打印的AST表示形式很难识别.这使我的解析器不容易实现.另一方面,我无法使用Ocaml来访问Python ast内部结构.即使我可以,数据结构也不同于Ocaml.
我想知道我在一开始从Python代码到C AST的转换中是否选择了错误的方法?
是否有其他任何可以满足我要求的工具或方法?
如果我有什么想念的,请指出对我有很大帮助.
谢谢.
解决方法:
我认为这不会很好地工作. CIL本质上只是C语言.为了使您的技巧起作用,您已经将Python完全转换为C …,但是语言的概念非常不同.您将如何为Python对象建模?继续吗?动态负载?运行时输入?无限精度的算术?我认为您的问题不是AST.而是它们是概念性的.
如果您可以翻译成CIL,那么现在您将遇到一个新问题.当容易找到需要查找的结构时,分析器更易于构建.一旦将延续翻译为C,就很难对与延续的交互进行推理,因为它们不容易识别.
我想我会花精力尝试构建易于检测Python概念的Python静态分析器.
内容总结
以上是互联网集市为您收集整理的从Python到CIL(C中间语言)的翻译全部内容,希望文章能够帮你解决从Python到CIL(C中间语言)的翻译所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。