-
公开(公告)号:CN106649118B
公开(公告)日:2019-02-19
申请号:CN201611233521.7
申请日:2016-12-28
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于AST的Java代码SSA单路径的生成方法,其特征是包括如下步骤:步骤10:输入存放.java文件的src目录的路径;步骤11:使用ASTParser获得Java代码的AST;步骤12:使用ASTVisitor处理所有的MethodDeclaration,将每一个方法都拆分成若干条单路径代码;步骤13:使用JDT AST修改单路径代码的AST,将单路径转化为SSA的格式;步骤14:将SSA格式的单路径封装成符合Java语法规范的Java类,存放在path目录下,作为输出。本发明可以使研究者在该工具的基础上进行代码分析,降低了直接从代码文本进行分析的复杂性。
-
公开(公告)号:CN106873973A
公开(公告)日:2017-06-20
申请号:CN201611252798.4
申请日:2016-12-30
Applicant: 南京大学
IPC: G06F9/44
Abstract: 本发明公开了一种基于API文档的约束自动生成方法,包括如下步骤:首先输入一个URL;提取网页中类和函数的文字描述;对提取的句子进行一定的分析;然后使用NLP技术为每个句子生成一个树结构;识别树结构中的参数和结构生成树的中间表示形式;基于中间表示形式定义约束模板;最后遍历树结构自动生成相应的约束;本发明主要特点是通过API文档自动生成API函数的约束,方便程序员更好的理解API函数,并且能够弥补现有代码分析工具分析API函数的不足,使得代码分析工具能更好的分析源代码。
-
公开(公告)号:CN106649118A
公开(公告)日:2017-05-10
申请号:CN201611233521.7
申请日:2016-12-28
Applicant: 南京大学
IPC: G06F11/36
CPC classification number: G06F11/3608
Abstract: 本发明公开了一种基于AST的Java代码SSA单路径的生成方法,其特征是包括如下步骤:步骤10:输入存放.java文件的src目录的路径;步骤11:使用ASTParser获得Java代码的AST;步骤12:使用ASTVisitor处理所有的MethodDeclaration,将每一个方法都拆分成若干条单路径代码;步骤13:使用JDT AST修改单路径代码的AST,将单路径转化为SSA的格式;步骤14:将SSA格式的单路径封装成符合Java语法规范的Java类,存放在path目录下,作为输出。本发明可以使研究者在该工具的基础上进行代码分析,降低了直接从代码文本进行分析的复杂性。
-
公开(公告)号:CN106610898A
公开(公告)日:2017-05-03
申请号:CN201611233490.5
申请日:2016-12-28
Applicant: 南京大学
IPC: G06F11/36
CPC classification number: G06F11/3608
Abstract: 本发明公开了一种基于JPF的Java代码SSA单路径的生成方法,其特征是包括如下步骤:步骤10:输入.java文件和.jpf文件,存放在src目录下;步骤11:对.java文件进行代码插桩,以便获得path condition;步骤12:编译得到.class文件,存放在bin目录下;步骤13:从.jpf文件获得JPF执行的相关参数;步骤14:使用JPF的jpf‑symbc模块对.class文件进行符号执行,获取指定方法中的可达的单路径,根据插桩信息提取出path condition;步骤15:使用JDT AST修改单路径代码的AST,将单路径转化为SSA的格式;步骤16:将SSA格式的单路径以及path condition封装成符合Java语法规范的Java类,存放在path目录下,作为输出。
-
公开(公告)号:CN106873973B
公开(公告)日:2020-05-08
申请号:CN201611252798.4
申请日:2016-12-30
Applicant: 南京大学
IPC: G06F8/35
Abstract: 本发明公开了一种基于API文档的约束自动生成方法,包括如下步骤:首先输入一个URL;提取网页中类和函数的文字描述;对提取的句子进行一定的分析;然后使用NLP技术为每个句子生成一个树结构;识别树结构中的参数和结构生成树的中间表示形式;基于中间表示形式定义约束模板;最后遍历树结构自动生成相应的约束;本发明主要特点是通过API文档自动生成API函数的约束,方便程序员更好的理解API函数,并且能够弥补现有代码分析工具分析API函数的不足,使得代码分析工具能更好的分析源代码。
-
公开(公告)号:CN106610898B
公开(公告)日:2019-01-04
申请号:CN201611233490.5
申请日:2016-12-28
Applicant: 南京大学
IPC: G06F11/36
Abstract: 本发明公开了一种基于JPF的Java代码SSA单路径的生成方法,其特征是包括如下步骤:步骤10:输入.java文件和.jpf文件,存放在src目录下;步骤11:对.java文件进行代码插桩,以便获得path condition;步骤12:编译得到.class文件,存放在bin目录下;步骤13:从.jpf文件获得JPF执行的的相关参数;步骤14:使用JPF的jpf‑symbc模块对.class文件进行符号执行,获取指定方法中的可达的单路径,根据插桩信息提取出path condition;步骤15:使用JDT AST修改单路径代码的AST,将单路径转化为SSA的格式;步骤16:将SSA格式的单路径以及path condition封装成符合Java语法规范的Java类,存放在path目录下,作为输出。
-
公开(公告)号:CN107992324A
公开(公告)日:2018-05-04
申请号:CN201711405834.0
申请日:2017-12-22
Applicant: 南京大学
Abstract: 本发明公开了一种基于约束求解的代码搜索方法,其具体步骤为:步骤一、从开源社区中获取开源项目;步骤二、使用JPF和JDT分析源代码,将其转化为SSA格式;步骤三、使用JDT分析SSA格式的代码,将其转化为约束;步骤四、将源代码与生成的约束一一对应,构建代码-约束库;步骤五、构建代码搜索系统,帮助用户搜索代码。该方法的主要特点是基于约束求解的方法解决代码搜索问题,并对循环语句和类成员变量进行了处理,弥补了以往工作的不足,并且大大提高了代码搜索的准确率,使得程序员在软件开发过程中可以搜索需要的代码,加以借鉴或复用,提高软件开发效率和质量。
-
-
-
-
-
-