于海波
- 作品数:6 被引量:6H指数:2
- 供职机构:上海交通大学电子信息与电气工程学院软件学院更多>>
- 发文基金:国家自然科学基金更多>>
- 相关领域:自动化与计算机技术更多>>
- JavaScript程序动态切片技术的研究被引量:1
- 2016年
- 程序切片技术可以有效地运用在程序调试之中,但因为JavaScript语言动态的特性,传统的程序切片技术难以直接运用在JavaScript程序上。本文提出一种新的动态切片技术,结合JavaScript自身的语言特性,扩展了系统依赖图对于JavaScript程序的定义,设计并实现了系统依赖图的构建算法,最后基于系统依赖图进行了程序的切片工作。实验结果表明,该技术可以有效地运用在JavaScript程序的动态程序切片中,切片结果占原程序的比重较小。
- 叶家彬于海波
- 关键词:程序切片JAVASCRIPT
- Seeker:流敏感的需求驱动指向分析
- 2016年
- 需求驱动指向分析技术一般用于受到严格时间或内存限制的环境。提高需求驱动指向分析的流敏感度,可使一些变量得到准确的指向关系,但实践中存在具有较强流与数据依赖的大型软件系统,较难识别出对目标变量的指向关系产生贡献的程序语句。为此,提出一种流敏感的程序表示方法,通过定义一种上下文无关语言可达性的概念,搜索目标变量的流敏感指向关系。开发一种Seeker工具,能够为用户感兴趣的变量计算指向集合。实验结果表明,需求驱动的指向分析算法提高了流敏感上下文非敏感指向分析的效率。
- 肖可君于海波陈雨亭钟浩
- 关键词:上下文无关语言
- 基于字节码插桩的多线程调试工具被引量:3
- 2016年
- 在软件演化过程中,代码的调试是不可或缺的重要环节。对于多线程程序,线程的交错和调度是非确定的,不同的线程调度会产生不同的结果,程序员较难调试多线程程序。为此,对实际项目中多线程程序出现的错误进行分析,提出一种新的多线程调试工具,并给出顺序点概念。设计用于调试的线程调度语言,在字节码层面对测试程序进行插桩,使线程按照期望的顺序调度。在此基础上实现一个Eclipse上的调试插件。实验结果表明,与现有工具IMunit相比,该调试工具减少了程序员的工作量,并拓展了两类程序的调试场景,具有较好的实用性。
- 周一耒于海波钟浩
- 关键词:多线程字节码插桩插件
- 结合可达性分析的代码片段推荐
- 2014年
- 为满足日益复杂的软件需求,开发人员需要通过代码提示工具来辅助完成开发任务,但现有代码提示工具在推荐包含静态方法的代码片段时存在空间爆炸问题。为此,提出一种基于程序环境信息的代码片段推荐方法。结合可达性分析进行推荐能够有效削减静态方法入口点,在避免空间爆炸的同时,还可以准确、有效地描述程序环境信息。基于该方法实现在Eclipse中的代码推荐插件,并对Tomcat源码进行实验验证。实验结果表明,该方法可实现静态方法的代码片段推荐,与Eclipse Code Recommenders插件中的推荐方法相比,能获得更准确的推荐结果。
- 贾翕于海波方璐
- 关键词:语义网规则语言可达性分析排序
- 一种有效的API搜索算法
- 2016年
- 近年来程序库日趋复杂。当面对不熟悉的开发领域或者功能模块时,开发者通常需要借助搜索引擎或者查阅API文档的方式来选择合适的API来进行开发。然而传统搜索引擎的搜索结果过于碎片化以及API文档中检索的不便使得这一过程十分耗时。本文提出一种新的搜索算法,并根据该算法实现一个API搜索工具APIBook。APIBook能够根据用户对API功能的自然语言描述,结合软件库中API的语义信息、类型信息和调用情况,向用户推荐相关的API,并且给出API调用的代码示例。实验表明APIBook在API搜索上比传统的检索模型更加有效。
- 宋文灏钟浩于海波
- 关键词:应用编程接口信息检索
- 基于变更相似性的跨语言克隆检测方法被引量:2
- 2016年
- 为了吸引更多开发者或是支持不同的平台,开源项目组织或商业公司倾向于采用多种语言实现他们的项目。在这些多语言项目中,存在大量跨语言的克隆代码,跨语言的克隆检测成为维护此类项目的重要部分。但是,现有的工具大多只能检测同一种语言的克隆,无法有效检测如Java和C#之间存在的跨语言克隆。为此,本文提出一种基于代码变更相似性的克隆检测方法,该工具能够检测出Java和C#代码中存在的跨语言克隆。在开源项目ANTLR和Fp ML上进行实验评估,结果表明该工具能够有效检测出跨语言克隆代码。
- 柳萌宇钟浩于海波
- 关键词:克隆检测信息检索数据挖掘