我正在开发一些代码生成工具,很多复杂性来自于范围分析。我经常发现自己想知道这样的事情
我想是时候重新考虑我的范围了。
我可以进行所有这些分析,但我正在试图找到一种方法来构造API,以便它易于使用,并且在理想情况下,可以懒洋洋地完成足够的工作。
这些工具是人们熟悉的,他们在API中做了什么正确和错误的事情?
发布于 2008-12-20 04:11:50
我对这个问题感到有点惊讶,因为我已经做了大量的代码生成,并且很少会出现范围划分的问题(除了偶尔需要生成唯一名称)。
要回答您的示例问题,需要严肃的程序分析,远远超出了的范围。逃逸分析本身是不平凡的。根据目标语言的不同,使用前初始化可以是琐碎的,也可以是非平凡的。
根据我的经验,用于程序分析的API是很难设计的,并且常常是特定于语言的。如果您的目标是一种低级语言,您可能会从机器SUIF API中学到一些有用的东西。
在您的位置上,我很想盗取别人的程序分析框架,。乔治·内库拉和他的学生构建了CIL,这似乎是当前分析C代码的标准。劳里·亨德伦的团队为分析Java构建了一些很好的工具。
--如果我不得不提交自己的,我会少担心API,而更多地关注抽象语法树的良好表示。
在数据流分析的非常有限的领域(其中包括未初始化的变量问题),Jo o Dias和我已经适应了一些索林·勒纳、大卫·格罗夫和克雷格·钱伯斯的作品不错。只有我们的初步结果被发布。
最后,如果您希望生成多种语言的代码,,这是一个完整的蠕虫。我已经做了好几次了。如果你创造你喜欢的东西,发表它!
https://stackoverflow.com/questions/382431
复制相似问题