1: 稼げる名無しさん 2020/06/17(水) 21:18:57.52 ID:CAP_USER.net
FacebookはC++、Java、Pythonなどの高水準言語で書かれたプログラムコードを別のプログラミング言語に変換するニューラルトランスコンパイラを開発したという。このシステムは教師なし学習を採用しており、同社は従来よりもかなり効率が改善したとしている。

既存のプログラムコードを別の言語に移行するには、両方の言語について専門的な知識が必要な上、コストがかかってしまいがちだ。たとえばオーストラリアのコモンウェルス銀行はプラットフォームをCOBOLからJavaに移行するために5年の歳月と約7億5,000万米ドルを費やした。

Facebookは教師なし学習というアプローチ法に取り組み、C++、Java、Python間でソースコードを変換することができる「TransCoder」を開発した。トレーニングには280万件以上のオープンソースリポジトリからなるGitHubコーパスを使用した。TransCoderは元のプログラムコードを別の言語へ変換し、変換したプログラムコードを元の言語へ再度変換することを繰り返して学習している。

TransCoderのパフォーマンス評価にはGeeksforGeeks(コーディングの問題点や解決方法を集めたオンラインプラットフォーム)から抽出したC++、Java、Pythonの関数852個を使用した。Facebookによると、最も評価の高かったバージョンのTransCoderは、厳密に言えば同一の関数を生成していないことが多かったが、計算精度が高かった。以下にTransCoderが期待される結果を返した割合をまとめる。

C++からJavaへの変換:74.8%
C++からPythonへの変換:67.2%
JavaからC++への変換:91.6%
PythonからJavaへの変換:56.1%
PythonからC++への変換:57.8%
JavaからPythonへの変換:68.7%
TransCoderが各言語に特有のシンタックスを理解するだけでなく、言語のデータ構造やメソッドも理解したことが証明されたと研究者らは述べている。

専門知識を持たなくても、TransCoderを使えばあらゆるプログラミング言語で容易にソースコードを生成できます。しかも商業用のソリューションを大幅に上回っています。

AIによるコード生成システムを開発しているのはFacebookだけではない。今年行われたMicrosoftのカンファレンス「Build」では、OpenAIが英文で書かれたコメントから関数を生成するモデルをデモンストレーションした。2年前にはライス大学の研究者が「意図」を読み取ってコードを生成する「Bayouというシステムを作っている。

Intel Labsの主任研究者兼ディレクターのJustin Gottschlich氏はVentureBeatのインタビューに対してこう語った。

これらはソフトウェア開発の無駄を取り除いてくれます。バグ対応の手間が省けるので、プロダクティビティの加速化に役立ちます。そして新たな職を生み出します。なぜならプログラミングをしたことのない人々でもこれらのインターフェイスを通じてクリエイティブな直観を形にすることができるからです。
https://thebridge.jp/2020/06/facebooks-transcoder-ai-converts-code-from-one-programming-language-into-another

1001: 以下名無しさんに代わりまして管理人がお伝えします 1848/01/24(?)00:00:00 ID:money_soku


え?C++で扱うメモリ管理とかどうするんだお?
バグ対応の手間を省けると書いているけれど、もしトラブルが出たらどっちにしろコードを読まないといけないと思うんだけれど。
yaruo_asehanashi
 んーまぁ将来的にもっと簡単にプログラムが組めるようにという挑戦かなと思う。
 まぁやる夫が懸念している通り確実な動作を要求される仕事には今のところ使えなさそうだが。





1001: 以下名無しさんに代わりまして管理人がお伝えします 1848/01/24(?)00:00:00 ID:money_soku




現在よく読まれているニュース!:






以下2chの反応と管理人の反応です






2: 稼げる名無しさん 2020/06/17(水) 21:21:48.61 ID:pdMnAXm5.net
もうやりたい事を日本語で文章書いたら動けよ

3: 稼げる名無しさん 2020/06/17(水) 21:28:36.18 ID:Xx+137s0.net
こういうのはだいたい、不具合でて直そうとしたら人には理解できなくて苦労する

4: 稼げる名無しさん 2020/06/17(水) 21:32:25.52 ID:3bcWTHJP.net
こういうのって違う言語に変換してから元の言語にもう一回変換しても同じ動きするのかな
それか俺が書いた無駄な部分が最適化されてたりして

5: 稼げる名無しさん 2020/06/17(水) 21:32:49.72 ID:DdYJsufQ.net
>言語のデータ構造やメソッドも理解した
まじかよ

7: 稼げる名無しさん 2020/06/17(水) 21:36:12.34 ID:5d0pB2R+.net
99%変換できても残りの1%がバグになるんなら使い物にはならないんじゃね

8: 稼げる名無しさん 2020/06/17(水) 21:37:59.39 ID:MQDPCWjT.net
対応言語を一周して同じ動きになってから発表しろよ。

9: 稼げる名無しさん 2020/06/17(水) 21:46:22.86 ID:SwSN/ozR.net
むしろ、ルールベースで出来ないの?

12: 稼げる名無しさん 2020/06/17(水) 22:01:09.34 ID:OxKVR8gF.net
>>1
>C++からJavaへの変換:74.8%
>C++からPythonへの変換:67.2%
>JavaからC++への変換:91.6%
>PythonからJavaへの変換:56.1%
>PythonからC++への変換:57.8%
>JavaからPythonへの変換:68.7%



解散

15: 稼げる名無しさん 2020/06/17(水) 22:08:05 ID:LYXQviAg.net
これでバグが出たら地獄見る気がする

16: 稼げる名無しさん 2020/06/17(水) 22:10:01.63 ID:0AJ0qp+Y.net
そして、致命的な不具合が発生しても一生修復できないプログラム完成

17: 稼げる名無しさん 2020/06/17(水) 22:10:02.82 ID:wq05Rhfq.net
~%変換とか意味ないから。
100%じゃないとゴミですよ。

18: 稼げる名無しさん 2020/06/17(水) 22:29:29.92 ID:fhl8TdVp.net
>>1
夏が近づいてきたな
肝試しはこのジェネレータの出力コードにきまり

20: 稼げる名無しさん 2020/06/17(水) 22:30:33.79 ID:iSLbcHy0.net
競技プログラミングぐらいなら
100%変換可能だろ

21: 稼げる名無しさん 2020/06/17(水) 22:37:05 ID:YA0LBWXl.net
バグも翻訳中に直してくれるの?

25: 稼げる名無しさん 2020/06/17(水) 22:49:46.01 ID:FhO6EsCB.net
c++とjavaは文法が似てるだけあって精度が高い
pythonはかなり違うし動的型付けやから変換しんどそう

26: 稼げる名無しさん 2020/06/17(水) 22:52:15.95 ID:SVKGpFpI.net
単純なコード以外無理そう

1001: 以下名無しさんに代わりまして管理人がお伝えします 1848/01/24(?)00:00:00 ID:money_soku






現在よく読まれている記事:






引用元:anago.2ch.sc/test/read.cgi/bizplus/1592396337/