Big Code简介

来源:互联网 发布:淘宝网官方网站电脑版 编辑:程序博客网 时间:2024/06/05 23:06

今天看到个特别有意思的东西,Big Code,感觉离拥有个编码机器人根据自己以前的代码自动编码的日子不远了!

项目地址:Big Code

为了更好的了解,边看边翻译。英语水平初级,还请包涵。英语棒的童鞋可以直接看官网。

1.简介:

就像大量的网络数据使大数据应用成为可能一样,目前,大量的程序知识资源库(例如Github上的开放源代码资源)使得新的利用这些“Big Code”资料库的应用成为可能。使用“Big Code”是指自动从现有的代码中学习来处理一些任务,如预测程序错误、预测编程行为、预测开发者姓名或者自动创建新的代码。项目的研究主题涵盖机器学习、编程语言、软件工程等多个跨学科主题。本网站展示了一些本领域的最新技术。

本网站是德国Schloss Dagstuhl 莱布尼茨情报中心的Dagstuhl seminar“Programming from Big Code”项目的研究结果。网站的目的是持续作为一个入库可以使本领域的研究者和参与者能够共同合作应对面临的挑战。

2.挑战

挑战板块的目的是为了让研究社区对那些应该有多中解决方法的重要问题进行讨论、定义。最大的挑战包括把有些系统作为基线,目标是产生一个更好的(例如精度更高)系统。挑战应该是独立的,也就是说对于一个新手需要花费几个小时去实现应对挑战的一个简单的解决方案。

挑战定义的标准:略

目前还没有挑战完全符合规则。

3.数据集

在研究社区分享数据集有很多好处和优势。这能使得在系统之间进行有意义的比较,使研究人员能够集中更多精力去开发新的先进方法,而不是花费大量时间收集和清洗数据。

一些数据集的介绍:

(1)JavaScript ASTs:包括100,000+50,000个JavaScript 文件。

(2)Java Github corpus:包括Github上14000个Java文件,分为训练数据和测试数据。

(3)Similarity of code fragments dataset:包括3个不同的集合,提供了使用我们工具相似度评分的代码片段对:用户的相似度评分和代码原始数据。

4.工具集

提供了一些可以体验“Big Code”好处的工具。

(1)JSNice:是苏黎世联邦理工学院开发的对JavaScript变量名称和类型注释的统计预测器。该工具为JavaScript学习了一个概率类型推断过程。学习过程利用条件随机场针对类型推理和变量名重建构建结构化预测。总体框架扩展以其他语言和类似的问题 详见 nice2predict.org。

(2)SLANG:是一个为了完成APIs的java编程实现工具。安卓应用程序可用来训练和评估,预测下一代安卓API应该如何编写。

(3)TASSAL:Tree-based Autofolding Software Summarization ALgorithm,利用自主折叠方法对源代码做自动摘要。自折叠自动通过折叠非必要代码和注释块来自动生成摘要。

(4)Naturalize:学习和建议代码编写惯例和规定,利用变量名,来改进你代码编写风格的一致性。


后续进展有待持续关注。。。。。。


0 0