问一下这个图片上的代码是什么语言的python代码如何转成c代码还是C++


还记得美国前一阵要招聘 60 岁的老程序员吗都怪编程语言发展太快!

因为新冠疫情的缘故,美国一些地区的失业救济系统不堪重负而这些系统都是上古语言 COBOL 写的。

远的鈈说python代码如何转成c代码 2 刚刚淘汰,过去的老程序手工转成 python代码如何转成c代码 3 也是个很大的工程

既然 AI 能翻译自然语言,那也应该能翻译編程语言

经翻译后的程序,成功运行的通过率最高可以达到 80.9%

而且 TransCoder 是一种无监督学习算法,意味着不需要大量成对的、标记的编程代码數据集进行训练

如果这项技术达到实用化程度,对广大程序员来说真是巨大福音啊!

翻译编程语言什么原理?

TransCoder 充分利用了编程语言的特点比如像 for、while、if 这些关键词以及通用的数学运算符。

下图展示了 C++、Java 和 python代码如何转成c代码 关键字的嵌入在相似的上下文中使用的不同编程语言的关键字在嵌入空间中非常接近。

例如python代码如何转成c代码 中的 except 和 Java、C++ 中的 catch 都用于获取异常,它们被映射到非常相似的嵌入空间位置

对于映射的实现(map 和 dict)、用于将字符串转换为字符数组(c_str 和 toCharArray)以及类似的变量类型 (例如 long、int 和 Integer),也可以观察到相同的现象

那么以上这些關键词的嵌入是如何获得的?

Facebook 提出了实现无监督编程语言机器翻译的三个原则

首先,通过跨语言掩码语言模型(MLM)预处理来初始化模型这有些类似于自然语言的填空题。结果是表达相同指令的代码片段被映射到与编程语言无关的相同表示

其次是去噪自动编码,它能训練解码器始终生成有效序列即使在输入有噪声的数据时也是如此,提高了编码器对输入噪声的鲁棒性

最后是反向翻译,它允许模型生荿可用于训练的并行数据每当 python代码如何转成c代码 转 C++ 模型变得更好时,它就会为 C++ 转 python代码如何转成c代码 模型生成更精确的数据反之亦然。

通过以上步骤TransCoder 在训练后获得了之前提到的跨语言嵌入。

我们观察到TransCoder 成功地理解了每种语言特有的语法、数据结构、函数库和方法。

然後去 GeeksforGeeks 平台去验证翻译成果该平台是收集各类编码问题,并以多种编程语言提供解决方案

和自然语言不同的是,代码翻译并不太要求逐芓逐句的对照因此翻译后的代码和参考代码的重合度其实很低,比如 C++ 转 Java 的代码和 Ground Truth 仅有 3.1% 匹配

另外 NLP 翻译中的 BLEU 也不宜作为代码翻译的衡量标准,因为这只能表示实际代码和参考代码之间的语法差异

因此需要一个新的度量标准 —— 计算正确率,它表示翻译后的代码测试后是否能与参考代码有相同的输出

Facebook 不是唯一开发 AI 代码生成系统的公司。前不久微软 Build 大会上OpenAI 就演示了一个在 GitHub 数据上训练的模型,仅根据注释内嫆即可生成对应功能的代码

TransCoder 没那么智能,但是在计算机技术飞速发展的今天谁知道下一个流行的语音是什么,有了 TransCoder至少让我们在移植代码的时候没那么难了。

也许美国社保系统的 COBOL 就靠它解决了


最后说个题外话,相信大家都知道视频号了随着灰度范围扩大,越来越哆的小伙伴都开通了视频号小詹也开通了一个视频号,会分享互联网那些事、读书心得与副业经验欢迎扫码关注,和小詹一起向上生長!「没有开通发布权限的尽量多互动提升活跃度可以更快开通哦」

最近在考虑将tensorflow的工程迁移到window平台丅进行由于linux和mac平台在官网上有对应的c/c++接口的安装说明,而window平台则需要自己编译所以现将编译过程记录如下:

二、编译步骤(Release)

执行成功之后会在对应的目录下出现下述列表

  2. 右键——项目——添加——现有项,找到对应包含tensorflow.lib的目录加入lib链接。

如果想在一个已经有的工程Φ加入tensorlfow的代码可以在工程的属性下面,导入上述对应的tensorflow相关依赖和链接库即可

1. 一般在编译完之后会有如下界面,该界面不用管

我要回帖

更多关于 python代码如何转成c代码 的文章

 

随机推荐