他言語へのコード移植と差異の確認

移植後コードとともに文法やライブラリの違いを整理して取得

プロンプト · 変数 3個

私は{{元の言語}}で書かれた以下のコードを{{翻訳先言語}}に移植したいと考えています。私は{{元の言語}}には慣れていますが、{{翻訳先言語}}は基本的な文法を知っている程度です。

コードを{{翻訳先言語}}に移植してください。文法をそのまま置き換えるだけでなく、{{翻訳先言語}}のプログラマーが一般的に書く慣用的なスタイル(イディオマティックな書き方)に修正してください。元の言語で使っていた表現が{{翻訳先言語}}において危険または不自然な場合は、変更した理由も併せて教えてください。

以下の順序で回答してください。① 移植後のコード ② 変更箇所の対応表(元の表現・変更後の表現・変更した理由) ③ 両言語で動作が異なる可能性がある点(整数の割り算、文字列エンコーディング、nullの扱い、ソートの安定性など) ④ 代替したライブラリとそれを使用するために必要な設定。

元のコードにない機能を勝手に追加しないでください。対応方法が複数あり判断が難しい場合は、独自に1つ選ぶのではなく、2つの候補とその違いを提示してください。関数名やライブラリ名に確証が持てない場合は捏造せず、「要確認」と明記してください。

コード: """ {{コード}} """

コピーしたらここに貼り付け · ChatGPT・Claudeはプロンプト入りで開きます ChatGPTで開く ↗Claudeで開く ↗Geminiで開く ↗ ビルダーで編集 授業用カード画像を保存

このプロンプトには個人情報が入りうる変数があります。実名・番号・会社名は仮名に置き換えてください。

なぜこう書くのか

文脈
私は{{元の言語}}で書かれた以下のコードを{{翻訳先言語}}に移植したいと考えています。私は{{元の言語}}には慣れていますが、{{翻訳先言語}}は基本的な文法を知っている程度です。
課題
コードを{{翻訳先言語}}に移植してください。文法をそのまま置き換えるだけでなく、{{翻訳先言語}}のプログラマーが一般的に書く慣用的なスタイル(イディオマティックな書き方)に修正してください。元の言語で使っていた表現が{{翻訳先言語}}において危険または不自然な場合は、変更した理由も併せて教えてください。
形式
以下の順序で回答してください。① 移植後のコード ② 変更箇所の対応表(元の表現・変更後の表現・変更した理由) ③ 両言語で動作が異なる可能性がある点(整数の割り算、文字列エンコーディング、nullの扱い、ソートの安定性など) ④ 代替したライブラリとそれを使用するために必要な設定。
制約
元のコードにない機能を勝手に追加しないでください。対応方法が複数あり判断が難しい場合は、独自に1つ選ぶのではなく、2つの候補とその違いを提示してください。関数名やライブラリ名に確証が持てない場合は捏造せず、「要確認」と明記してください。
入力資料
コード: """ {{コード}} """

コード変換はAIが最も得意そうに見えるタスクの一つであるため、出力されたコードをそのまま貼り付けてしまいがちです。しかし問題は、「文法的に合っているコード」と「その言語において安全なコード」は別物であるという点です。Pythonで何気なく書いていた表現がJavaでは値の丸め誤差や例外の原因になることがあり、しかもコンパイル自体は通ってしまうため、後からバグとして発覚しやすくなります。

課題の段落で「文法をそのまま置き換えるだけでなく」と明記したのはこのためです。この1行がないと、1行ずつ直訳しただけのコードが出力されます。動作はしてもその言語のエンジニアから見れば不自然で、かえって修正が難しいコードになってしまいます。元の言語で自然だった表現が移植先言語では危険なイディオムになるケースを指摘するよう求めているのも同じ意図です。

出力形式の肝は②と③です。移植後のコードだけを受け取っても、何がなぜ変わったのかが分からず学びにつながりません。変更点の対応表は2つの言語の違いを一目で示し、「動作が異なる可能性がある点」は、PythonからJavaへの移行などで実際に事故が起きやすいポイント(整数の除算、エンコーディング、null処理など)を事前に洗い出します。

制約の「要確認」という指定は、存在しない関数名をそれらしく捏造(ハルシネーション)することを防ぎます。分からない箇所が明示されれば、どこを検索して検証すべきかが定まります。コードを """ で囲んでいるのは、コード内のコメントや文字列がプロンプトへの指示として誤認されるのを防ぐためです。# この部分は削除可能 といった1行のコメントがプロンプト指示として解釈されてしまう事故を防止します。

用語が分からなければAha AIで: hallucination, output-format

悪い例との比較

よくある悪い例

これをJavaに変えて def parse_orders(rows): ... (コード貼り付け)

コードは出力されますが、元のコードと1行ずつ対応させただけの直訳になり、Javaではあまり使われない構造がそのまま残ってしまいます。何が変わったのかの説明がないため、整数の除算のように暗黙的に値が変わってしまうポイントを見落としやすく、ライブラリ名が間違っていても実際に実行するまで気付けません。結局、移植されたコードを最初からすべて読み直して検証することになり、手作業で移植する場合と作業時間が変わらなくなります。

バリエーション

移植前にリスクのある箇所を把握したい場合

移植前にリスクのある箇所を把握したい場合

以下の{{元の言語}}コードを{{翻訳先言語}}に移植する予定です。まだコードは移植せず、移植時に問題になりそうな注意点のみを洗い出してください。危険度順にリストを作成し、各項目について「元のコードのどの部分か」「なぜ問題になるのか」「対応策の候補」を記述してください。問題のない部分には言及しないでください。

""" {{コード}} """

規模の大きなコードを移植する前に事前チェックとして使用します。あらかじめリスクの高い箇所を把握しておくことで、移植後のコードレビュー時にどこを重点的に見るべきかが明確になります。

移植したコードが正しいか検証したい場合

移植したコードが正しいか検証したい場合

以下は私が{{元の言語}}から{{翻訳先言語}}へ移植したコードです。元のコードと結果が異なってしまう可能性がある入力値のパターンを見つけてください。「入力例」「元のコードの実行結果」「移植後コードの実行結果」「なぜ結果が異なるのか」を表形式で整理し、差異がないと判断した部分についてはその根拠を1行で記述してください。

""" {{コード}} """

自分で移植を行った後にレビュー・検証を依頼する用途です。結果の差異を検証するためのテスト用入力値を先に取得することで、そのまま動作テストに活用できます。

モデル別の注意

移植されたコードは必ずご自身で実際に実行して確認してください。標準ライブラリの名前は正しくても、関数名や引数の順序を誤って記憶・出力しているケースがよくあります。

関連プロンプト

最終更新 2026-09-02 · 誤りがありますか? 知らせる