基于动态分析的JavaScript代码推荐
2014-06-07陈雨亭
吴 通,陈雨亭
(上海交通大学软件学院,上海200240)
基于动态分析的JavaScript代码推荐
吴 通,陈雨亭
(上海交通大学软件学院,上海200240)
针对现有基于静态分析的JavaScript代码推荐技术准确度低且响应速度较慢的问题,提出一种基于动态分析的JavaScript代码提示方法,并设计基于Eclipse插件的代码推荐工具。采用事先建模的方法保存模拟运行环境,并且对上下文对象建立特征索引。同时在用户代码抽象语法树的基础上进行代码分块,按程序分块顺序对用户代码进行模拟执行,利用对象之间的相似度在用户运行时修正运行变量,并对模拟执行时产生的异常进行处理,实现针对用户代码的动态分析JavaScript代码提示。实验结果表明,与现有使用静态分析方法的JavaScript代码推荐技术相比,该方法具有更高的可推荐性和更快的响应速度。
代码推荐;Eclipse插件;动态分析;抽象语法树;模拟运行;异常处理
1 概述
JavaScript作为一种脚本语言正变得越来越流行,它不但被应用于像Gmail这样的浏览器应用程序,近年来更是被运用在服务器、手机、甚至Win8这样的桌面程序上。正因为JavaScript的流行,使得针对JavaScript集成开发环境[1](Integrated Development Environment,IDE)新特性[2]和功能[3]的研究受到了更多的关注。
不少IDE提供了针对JavaScript的代码推荐功能[4]:当开发人员输入了一个表达式e之后,输入一个点号“.”,代码推荐功能会推荐出可能出现在点号之后的属性和方法名。这项重要的功能能够缩短程序员对于不熟悉的类库或框架的学习时间,减轻代码编写过程中输入完整方法类型名称的负担,避免编程过程中的拼写错误,从而提高软件的开发效率。……
