【转载】代码自动生成—路遥 vs 马力(北京大学 李戈)
-
本文编发了北京大学李戈老师在NASAC 2018数据驱动的智能化软件开发论坛(论坛网站:http://bigcode.fudan.edu.cn/events/NASAC2018Forum/) 上所做的报告“代码自动生成—路遥 vs 马力”。
报告内容
本报告对“程序代码自动生成”的困难进行了探讨。指出“从编程者意图生成程序代码”的问题,可以看做是“程序员意图空间”到“程序代码空间”的映射。对这一映射关系的学习较“图像识别”、“自然语言翻译”具有更高的学习难度。报告对困难的原因给出了一种直观的解释:“图像识别”可以看做是“从一个边界清晰的连续数据集合到一个边界较清晰的准连续数据集合的映射”;“自然语言翻译”可以看做是“两个边界较清晰的准连续数据集合之间的映射”;而“程序自动生成”可以看做是“从一个边界不清晰的准连续需求意图集合,到一个边界不清晰的离散的目标程序集合的映射”,这种映射难以用连续函数映射来表达,从而给现有数据学习方法的应用带来了困难。
报告指出“将学习空间压缩至一个数据足够密集的子领域”以提高数据集合的连续性和数据边界的清晰性,是降低这一困难的可能途径。在报告的最后,对新一代智能编程工具aiXcoder的功能和效果进行了演示并欢迎大家参加工具测试。