基于TensorFlow的代码自动生成的研究与应用开题报告
2021-12-14 21:55:10
1. 研究目的与意义及国内外研究现状
目的:研究并学习google 官方于2015年11月9日推出的第二代机器学习系统tensorflow以及基于此系统平台,使用python编写的递归神经网络(lstm,rnn)算法的实现,藉此来研究代码编写的自动化及其应用。
意义:近年来,无人技术的发展很快,像无人机,无人工厂等已经趋于成熟,无人驾驶技术也趋于实用。而在大数据时代,云计算资源逐渐丰富,机器学习,人工智能等领域的研究与发展另无人技术的自动化,智能化水平不断提高,在此助力下,开发无人编程即编程自动化系统也渐渐走向可能,让软件学习人类编程的能力,达到让具有一定学习智能的软件在获得一定生产需求的相关信息之后,能自行生产代码,甚至软件,以取代人工来完成一些诸如软件代工等简单重复的编程工作,提升工作效率。
国内外研究现状
代码生成这一概念由来已久,诸如j2ee,hibemate,struts等程序框架,试图从软件复用的角度在软件开发的设计和编码阶段减轻编写人员的负担,它们提供了功能多样且实用的api和类库,以减少编写人员编写诸如数据库访问,web页面流转控制等底层逻辑代码的重复工作。 一些如rational rose等的case工具也带有代码生成功能,但它们生成的代码比较简单且并不支持当前主流的应用程序框架的代码生成。一些流行的ide,如jbuilder,vc stlldio,eclipse等也包含代码生成功能,并支持当前流行的许多应用程序框架的支持,但它们大多数是辅助性地一次一个或几个类地生成代码而无法根据需求批量产生代码,无法满足更宽泛的应用生产需求。由此,许多针对某一类应用程序框架生成代码的工具被开发出来,如支持stmts的realmetllod,支持ejb的modelj等。 而像0ptimalj、arcstyler等已产品化的代码生成工具,其代码生成已达到较高的自动化水平,支持可视化定制复杂的业务逻辑并生成相应代码。
2. 研究的基本内容
设计一套关于机器学习编程代码并且能自动生成代码的系统,可实现对某人使用某一编程语言的编程风格的学习,并根据该人现阶段未完成的工作中已编写的代码,对未完成部分的代码进行预测,生成,以供参考并在一定程度上减轻工作量。
同时在设计过程中,研究并学习Google 官方于2015年11月9日推出的开源的第二代机器学习系统Tensorflow以及基于此系统平台,使用Python编写的递归神经网络(LSTM,RNN)算法的实现,藉此来研究代码编写的自动化及其应用。
3. 实施方案、进度安排及预期效果
2015年1月14日~31日——明确系统设计的前期技术需求。包括但不限于Linux系统的安装以及环境的配置,Python的基本使用,Tensorflow相关的安装,API使用等,以及char_rnn_Tensorflow的使用,参考一定量英文文献,学习国际相关应用的先进技术.2015年2月~3月——搭建系统需求整体框架。确定各部分功能实现的效果,重点在处理数据的速度和正确率上,通过程序优化提高系统执行速度。编写应用程序,将各部分功能封装,系统整体运行。2015年3月31日前——查阅并翻译相关外文文献2015年4月——系统进一步完善,争取实际应用,项目验收结题。2015年5月15日前——撰写、完成毕业论文(设计)
4. 参考文献
[1]tensorflow官方文档中文版本.http://wiki.jikexueyuan.com/project/tensorflow-zh/
[2]tensorflow官方github仓库.https://github.com/tensorflow/tensorflow
[3]tensorflow中文版github仓库.https://github.com/jikexueyuanwiki/tensorflow-zh