利用统计模型和机器学习推进代码补全:我们做到了吗?
1. 引言
人工智能(AI)和机器学习(ML)的进步为我们日常生活的诸多方面开辟了新方向,也为软件开发过程带来了智能技术,如智能代码助手、程序合成、自动化软件测试和自动化程序修复等。在集成开发环境(IDE)中,代码补全(CC)工具能帮助开发者填充正在编辑的代码,补全的代码粒度可以是标记、语句或代码片段级别。代码补全是软件开发人员常用的功能,是IDE中第三重要的功能(仅次于编辑和编译),它能通过填充所需代码并减少常见错误来加快编码过程,程序员使用代码补全的频率与使用复制粘贴功能相当。
在各大主流IDE(如Eclipse和IntelliJ IDEA)中,代码补全功能已从基本支持发展到更高级的服务。基本的代码补全可帮助开发者完成可见范围内的类、方法、字段和关键字的名称。当调用代码补全时,工具会分析上下文并建议从当前位置可访问的选项。若应用于字段、参数或变量声明的一部分,工具会根据实体类型建议可能的名称。例如,当输入一个String类型的变量v时,IDE会推荐该类型可能的字段和方法列表,这些可访问元素列表通常按字母顺序排序。Eclipse还支持基于模板的常见构造/API(如for/while、Iterator)补全。
更高级的代码补全服务,如IntelliJ提供的,包括完成常见程序构造:
1. 赋值语句的右半部分;
2. 变量初始化器;
3. 返回语句;
4. 方法调用的参数列表;
5. 对象声明中new关键字之后的部分;
6. 链式表达式中;
7. 方法声明;
8. 代码构造,如条件语句中的标点符号;
9. 包装参数的方法调用。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



