{"id":10219,"date":"2020-09-02T07:00:00","date_gmt":"2020-09-02T15:00:00","guid":{"rendered":"http:\/\/formtek.com\/blog\/?p=10219"},"modified":"2020-06-22T08:43:04","modified_gmt":"2020-06-22T16:43:04","slug":"coding-using-ai-to-translate-between-programming-languages","status":"publish","type":"post","link":"https:\/\/formtek.com\/blog\/coding-using-ai-to-translate-between-programming-languages\/","title":{"rendered":"Coding: Using AI to Translate Between Programming Languages"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Code migration.  Translating computer code from one programming language to another is tedious, time consuming, and expensive.  When migrating from legacy systems or legacy ways of operating, it often can&#8217;t be escaped. Code translators are also often used to rewrite code from a higher-level language into into a lower-level one, like the preprocessing of Typescript into Javascript.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"https:\/\/www.forbes.com\/sites\/tomgroenfeldt\/2012\/12\/18\/replacing-legacy-core-banking-systems-sap-has-limited-success\/#4ad3e6877d09\">An example of the costs of code migration is Commonwealth Bank of Australia.<\/a>  The bank spent $750 million over the course of five years to convert their COBOL-based system to Java.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">But just like AI has been able to make translation between natural languages, like English and Chinese, AI can translate computer code too.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Recent work by a team at Facebook has created a competent transpiler, a source-to-source compiler that can translate programming languages.  The initial results of the project are impressive.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"699\" height=\"423\" src=\"http:\/\/formtek.com\/blog\/wp-content\/uploads\/2020\/06\/image-3.png\" alt=\"\" class=\"wp-image-10220\" srcset=\"https:\/\/formtek.com\/blog\/wp-content\/uploads\/2020\/06\/image-3.png 699w, https:\/\/formtek.com\/blog\/wp-content\/uploads\/2020\/06\/image-3-300x182.png 300w\" sizes=\"auto, (max-width: 699px) 100vw, 699px\" \/><figcaption><a href=\"https:\/\/medium.com\/swlh\/transcoder-facebooks-unsupervised-programming-language-translator-10b82d1c7a9e\">TransCoder: Facebook\u2019s Unsupervised Programming Language Translator by Rohan Jagtap<\/a><\/figcaption><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><a href=\"http:\/\/Justin Gottschlich\">Justin Gottschlich<\/a>, principal scientist and director at Intel Labs, <a href=\"https:\/\/venturebeat.com\/2020\/06\/08\/facebooks-transcoder-ai-converts-code-from-one-programming-language-into-another\/\">said that<\/a> &#8220;AI-based transpilers are really just trying to eliminate the minutiae of creating software. They could help accelerate productivity \u2026 [by taking care of] bugging. [And they could] increase the number of jobs [in tech] because people who don\u2019t have a programming background will be able to take their creative intuition and capture that via machine by these intentionality interfaces.&#8221;<\/p>\n<div class=\"lightsocial_container\"><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/digg.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/digg.png\" alt=\"Digg This\" title=\"Digg This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.reddit.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/reddit.png\" alt=\"Reddit This\" title=\"Reddit This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.stumbleupon.com\/submit?url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F&amp;title=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/stumbleupon.png\" alt=\"Stumble Now!\" title=\"Stumble Now!\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/buzz.yahoo.com\/buzz?targetUrl=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F&amp;headline=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/yahoo_buzz.png\" alt=\"Buzz This\" title=\"Buzz This\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.dzone.com\/links\/add.html?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dzone.png\" alt=\"Vote on DZone\" title=\"Vote on DZone\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.facebook.com\/sharer.php?t=&amp;u=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/facebook.png\" alt=\"Share on Facebook\" title=\"Share on Facebook\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/delicious.com\/save?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/delicious.png\" alt=\"Bookmark this on Delicious\" title=\"Bookmark this on Delicious\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.dotnetkicks.com\/kick\/?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dotnetkicks.png\" alt=\"Kick It on DotNetKicks.com\" title=\"Kick It on DotNetKicks.com\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/dotnetshoutout.com\/Submit?title=&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/dotnetshoutout.png\" alt=\"Shout it\" title=\"Shout it\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.linkedin.com\/shareArticle?mini=true&amp;url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F&amp;title=&amp;summary=&amp;source=\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/linkedin.png\" alt=\"Share on LinkedIn\" title=\"Share on LinkedIn\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.technorati.com\/faves?add=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/technorati.png\" alt=\"Bookmark this on Technorati\" title=\"Bookmark this on Technorati\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/twitter.com\/home?status=Reading+https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/twitter.png\" alt=\"Post on Twitter\" title=\"Post on Twitter\" \/><\/a><\/div><div class=\"lightsocial_element\"><a class=\"lightsocial_a\" href=\"http:\/\/www.google.com\/buzz\/post?url=https%3A%2F%2Fformtek.com%2Fblog%2Fcoding-using-ai-to-translate-between-programming-languages%2F\" target=\"_blank\"><img decoding=\"async\" class=\"lightsocial_img\" src=\"https:\/\/formtek.com\/blog\/wp-content\/plugins\/light-social\/google_buzz.png\" alt=\"Google Buzz (aka. Google Reader)\" title=\"Google Buzz (aka. Google Reader)\" \/><\/a><\/div><\/div>","protected":false},"excerpt":{"rendered":"<p>Code migration. Translating computer code from one programming language to another is tedious, time consuming, and expensive. When migrating from legacy systems or legacy ways of operating, it often can&#8217;t be escaped. Code translators are also often used to rewrite<span class=\"ellipsis\">&hellip;<\/span><\/p>\n<div class=\"read-more\"><a href=\"https:\/\/formtek.com\/blog\/coding-using-ai-to-translate-between-programming-languages\/\">Read more &#8250;<\/a><\/div>\n<p><!-- end of .read-more --><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[78,76,89],"tags":[],"class_list":["post-10219","post","type-post","status-publish","format-standard","hentry","category-code-development","category-coding","category-computing"],"_links":{"self":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/10219","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/comments?post=10219"}],"version-history":[{"count":1,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/10219\/revisions"}],"predecessor-version":[{"id":10221,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/posts\/10219\/revisions\/10221"}],"wp:attachment":[{"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/media?parent=10219"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/categories?post=10219"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/formtek.com\/blog\/wp-json\/wp\/v2\/tags?post=10219"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}