最近AIによるプログラミング補助ツールがよく話題になる印象です。自分自身そういったツールを使うことで純粋な手作業で行っていた作業を楽にやれています。自分ががよく使用しているAIツールは、OpenAIによるChatGPTとGitHubのGitHub Copilotです。これらのツールはプログラミング作業をより容易に行うための機能を提供してくれます。この記事ではこれらのツールを使って翻訳を行う方法に焦点を当てて解説します。
一般的な言語間の翻訳を行うためには、DeepLやGoogle翻訳などのサービスが非常に便利です。これらのサービスは手軽に高精度な翻訳を提供しますがプログラミング用としては不十分な点も存在します。2点の例をあげると、具体的にはコメント文の文脈を適切に理解する能力の、そしてPHPやSQLなどのプログラミング言語間の翻訳ができない点にあります。
よくある自然言語間の翻訳で便利なサービスとしてDeepL、Google翻訳といったサービスがあり、これらは便利です。これらのサービスは手軽に正確に日本語英語間などの自然言語の翻訳をしてくれるのですが、プログラミングの際にはいささか不便な点もあります。この点としてコメントの文のつながりの把握ができない点と PHP と SQL などといったプログラミング言語間の翻訳ができない点があげられます。
コメント文の翻訳についての例です。例えばコメント文を日本語訳したい時、DeepLに直接投げると次の様になります。コメントを表現する記号によって文が切断されることによって期待と異なる結果になってしいます。Google翻訳も似たような結果です。
一方でChatGPTに投げた場合の結果が次です。コメントの構造を維持しつつ文のつながりも自然な状態で返してくれます。またソースコード全体を既存の翻訳サービスにかけた場合、コメントでないプログラム本体が壊れてしまうことが多かったですが ChatGPT や GitHub Copilot ではその様なことはありません。これを用いることで初見のライブラリなどを早く適切に使えるようになります。
PHP と SQL の翻訳についての例です。これは自然言語を扱う目的の翻訳サービスにはできないこともより汎用的あるいはプログラミングに特化したサービスならばできる、ということです。例えば次の様にできます。こういった具合に次のSQLをクエリビルダで書いてください、次のC言語の実装をJavaScriptにしてください、変数名などをわかりやすい名前に変えてください、などといった手で行うと大分手間がかかる作業をAIに依頼するとずいぶん楽になります。
この記事では翻訳について紹介しましたがコメントや型を元に実装を作る、実装を元にテストのひな形を作る、などといったこともできます。こういったツールを活用することでより快適な開発ができます。