| 摘要 | 第5-6页 |
| Abstract | 第6-7页 |
| 第一章 绪论 | 第11-23页 |
| 1.1 研究背景 | 第11-13页 |
| 1.2 研究进展 | 第13-18页 |
| 1.2.1 程序设计语言使用分析 | 第13-15页 |
| 1.2.2 代码搜索、推荐和补全 | 第15-18页 |
| 1.3 研究内容 | 第18-21页 |
| 1.3.1 当前存在问题 | 第18-19页 |
| 1.3.2 研究内容与贡献 | 第19-21页 |
| 1.4 论文结构 | 第21-23页 |
| 第二章 基于词法的代码单元识别 | 第23-41页 |
| 2.1 引言 | 第23-24页 |
| 2.2 问题描述 | 第24-28页 |
| 2.2.1 词袋(Bag-of-Word) | 第24-25页 |
| 2.2.2 词典(Lexicons) | 第25-26页 |
| 2.2.3 可识别代码 | 第26-27页 |
| 2.2.4 最小集算法 | 第27-28页 |
| 2.3 实验方法 | 第28-30页 |
| 2.3.1 实验对象 | 第28-29页 |
| 2.3.2 研究问题 | 第29页 |
| 2.3.3 工具支持 | 第29-30页 |
| 2.4 实验结果及分析 | 第30-37页 |
| 2.4.1 词典LEX和LTT | 第30-32页 |
| 2.4.2 自然最小词典 | 第32-34页 |
| 2.4.3 多重性对词法可识别性的影响 | 第34-35页 |
| 2.4.4 异常大方法对词法可识别性的影响 | 第35-36页 |
| 2.4.5 基于MIN4的最小集 | 第36-37页 |
| 2.5 有效性威胁 | 第37-38页 |
| 2.6 应用分析 | 第38页 |
| 2.7 相关工作比较 | 第38-39页 |
| 2.8 总结 | 第39-41页 |
| 第三章 语法使用分析 | 第41-59页 |
| 3.1 引言 | 第41-42页 |
| 3.2 实验方法 | 第42-44页 |
| 3.2.1 实验对象 | 第42-43页 |
| 3.2.2 研究问题 | 第43-44页 |
| 3.2.3 工具支持 | 第44页 |
| 3.3 单个语法规则使用分析 | 第44-49页 |
| 3.3.1 聚合结果 | 第44-46页 |
| 3.3.2 语法规则的深入分析 | 第46-49页 |
| 3.4 语法规则演化使用分析 | 第49-53页 |
| 3.4.1 现有语法规则使用的演化 | 第49-51页 |
| 3.4.2 新语法规则的采用 | 第51-52页 |
| 3.4.3 新语法规则的引入对现有语法规则的影响 | 第52-53页 |
| 3.5 语法规则依赖使用分析 | 第53-55页 |
| 3.5.1 聚合结果 | 第53-54页 |
| 3.5.2 实例分析 | 第54-55页 |
| 3.6 有效性威胁 | 第55-56页 |
| 3.7 应用分析 | 第56-57页 |
| 3.8 相关工作比较 | 第57-58页 |
| 3.9 总结 | 第58-59页 |
| 第四章 API使用分析 | 第59-87页 |
| 4.1 引言 | 第59-60页 |
| 4.2 实验方法 | 第60-65页 |
| 4.2.1 实验对象 | 第60页 |
| 4.2.2 研究问题 | 第60-61页 |
| 4.2.3 分析过程 | 第61-64页 |
| 4.2.4 工具支持 | 第64-65页 |
| 4.3 API使用全局分析 | 第65-67页 |
| 4.3.1 API使用来源分析 | 第65-66页 |
| 4.3.2 项目规模与API使用关系 | 第66页 |
| 4.3.3 API使用遵循幂次定率 | 第66-67页 |
| 4.4 核心API使用分析 | 第67-77页 |
| 4.4.1 覆盖分析 | 第67-70页 |
| 4.4.2 热点分析 | 第70-74页 |
| 4.4.3 弃用API使用分析 | 第74-75页 |
| 4.4.4 精简运行环境的使用分析 | 第75-77页 |
| 4.5 第三方API使用分析 | 第77-82页 |
| 4.5.1 API库使用分析 | 第77-78页 |
| 4.5.2 API实体热点分析 | 第78-81页 |
| 4.5.3 API库多版本使用分析 | 第81-82页 |
| 4.6 有效性威胁 | 第82-83页 |
| 4.7 应用分析 | 第83-85页 |
| 4.8 相关工作比较 | 第85-86页 |
| 4.9 总结 | 第86-87页 |
| 第五章 多程序设计语言协同演化分析 | 第87-103页 |
| 5.1 引言 | 第87-88页 |
| 5.2 实验方法 | 第88-93页 |
| 5.2.1 实验对象 | 第88-89页 |
| 5.2.2 研究问题 | 第89页 |
| 5.2.3 分析过程 | 第89-93页 |
| 5.3 实验结果及分析 | 第93-99页 |
| 5.3.1 schema演化的频度和强度如何? | 第93-95页 |
| 5.3.2 schema是如何演化的? | 第95-97页 |
| 5.3.3 schema修改对应用系统代码的影响程度 | 第97-99页 |
| 5.4 有效性威胁 | 第99-100页 |
| 5.5 应用分析 | 第100-102页 |
| 5.6 相关工作比较 | 第102页 |
| 5.7 总结 | 第102-103页 |
| 第六章 总结与展望 | 第103-105页 |
| 6.1 论文总结 | 第103-104页 |
| 6.2 工作展望 | 第104-105页 |
| 附录A Java语法规则 | 第105-107页 |
| 参考文献 | 第107-114页 |
| 攻读博士学位期间完成的科研成果列表 | 第114-115页 |
| 攻读博士学位期间参加科研项目列表 | 第115-116页 |
| 致谢 | 第116页 |