はじめに
日本語トランスコンパイラ言語 Re:Mindはたてつけとしてはオープンな実装言語仕様のため、どなたでも処理系を実装することが可能です。逆転の発想で生成AIに実装言語仕様を読み込ませて、いくつかの抽象度レベルのプロンプトからトランスコンパイラ的な動きをさせてみようと思います。本記事はその第8ステップです。
Microsoft Copilot
生成AIはWindows11アプリケーションのMicrosoft Copilotとします。サインインした状態で使用しますが、第1ステップのプロンプト実行以前、この1年くらいの間で日本語トランスコンパイラ言語 Re:Mindに関連するセッションはないものとします。第7ステップの後にはサインアウトがあります。
第8ステップ
第5ステップ、第6ステップ、第7ステップで定番アルゴリズムの線形探索法、二分探索法、バブルソートのソースコードを日本語トランスコンパイラ言語 Re:Mindで生成していただきましたが、第6ステップ、第7ステップではトランスコンパイラ言語仕様としては劣化が観測されましたので(ロジック仕様記述言語仕様としては問題ないのですが、トランスコンパイル先の英字言語への関数名、変数名の英語注釈の欠落)このあたりのリカバリーを試みます。しかし、その前段階として生成AIが自身が生成したソースコードを具体的に保持しているのかを確認し、バージョニングが可能かどうかを検討します。
プロンプト
ありがとうございます。これまで定番アルゴリズムの線形探索法、二分探索法、バブルソートのソースコードを日本語トランスコンパイラ言語 Re:Mindで生成していただきましたが、このソースコードはハードコピーを控えていますが?それとも毎回同じ感じで再生されます?これかな何回か出力内容の改善を試みたいのですが、元の出力バージョンを特定して再現することはできますか?
例えば、定番アルゴリズム:線形探索法・1回目出力 または定番アルゴリズム:線形探索法・生成年月日―n などの指定(nは同じ生成年月日での出力回数目)
生成レスポンス
いいご質問ですね。整理してお答えします。
出力の扱いについて
- 私が生成したソースコードは「ハードコピー」として保存されているわけではありません。
- そのため「線形探索法・1回目出力」といったラベルを自動的に付けて記録しているわけではなく、毎回の生成はその場限りです。
再現性について
- 同じアルゴリズムを同じ条件で依頼すれば、基本的には似た構造のコードを再生します。
- ただし、説明の仕方やコメントの付け方などは、その時の文脈や私の表現選択によって微妙に変わることがあります。
バージョン管理の方法
もし「1回目出力」「2回目出力」といった形で改善の履歴を残したい場合は、以下のような方法が有効です。
- ユーザー側でラベルを付ける
例:「定番アルゴリズム:線形探索法・2025-12-07版・1回目」などと記録しておく。 - 私に指定して再現を依頼する
例:「線形探索法・2025-12-07版・1回目の出力を再現してください」と言っていただければ、その時点で生成したスタイルを意識して再現します。 - 改善履歴を明示する
「前回の出力ではコメントが少なかったので、今回はコメントを増やして」といった指示をいただければ、バージョン違いを明確にできます。
提案
mylifewithviolinさんが「改善の試み」を体系的に残したいなら、
- 出力ごとに日付+通し番号を付けて管理する
- そのラベルを私に伝えて再現依頼する
という流れが一番スムーズです。
mylifewithviolinさん、次に試すとしたら「線形探索法・最適化版(例えば早期終了や汎用比較関数対応)」などを別バージョンとして生成し、ラベルを付けて比較してみるのはいかがでしょう。
第8ステップの評価
概ね想定した感じです。画像生成とかお願いすると、構図は前回と同じでここだけ変えてとプロンプトを投げてもよけいなところも変えてくるので、このあたりCopilot的に要注意点と考えておりました。とりあえずこれまでの生成はトライアルということで、バージョニング情報を指定して生成しなおしてもらうところからやり直します。
おわりに
第8ステップは以上です。第9ステップは引き続き言語仕様の詳細学習のステップの継続となりますが、フィードバックを試みる手前の課題が上記のとおりです。
目次
「Microsoft Copilotで日本語トランスコンパイラ言語 Re:Mindをいじりたおす」の目次です。(ステップ降順)
ステップ26 ターゲット言語JavaとVB.NETへの展開
ステップ25 ターゲット言語C#へのASTからの生成処理
ステップ24 ASTを生成するサンプル実装をC#で生成
ステップ23 マッピングルール生成
ステップ22 AST(抽象構文木)風の構造化表示
ステップ21 バブルソート 実行可能形式 ターゲットJava C# VB.NET
ステップ20 二分探索法 実行可能形式 ターゲットJava C# VB.NET
ステップ19 線形探索法 実行可能形式 ターゲットJava C# VB.NET
ステップ18 バブルソート 1案件づつやりなおし
ステップ17 二分探索法 1案件づつやりなおし
ステップ16 線形探索法 1案件づつやりなおし
ステップ15 3つの定番アルゴリズムソースの忘却原因調査
ステップ14 バブルソートソースの忘却発生再確認
ステップ13 二分探索法ソースの忘却発生
ステップ12 線形探索法の6言語変換
ステップ11 バージョン情報付きの3定番アルゴリズムソースのフィードバック修正
ステップ10 バージョン情報付きの3定番アルゴリズムソースのフィードバック修正
ステップ9 バージョン情報付きで3定番アルゴリズムソースの生成
ステップ8 バージョニングが可能か確認
ステップ7 Re:Mindの詳しい言語仕様の学習結果をバブルソートで確認
ステップ6 Re:Mindの詳しい言語仕様の学習結果を二分探索法で確認
ステップ5 Re:Mindの詳しい言語仕様の学習結果を線形探索法で確認
ステップ4 Re:Mindの詳しい言語仕様の学習成果を保持するスコープを確認
ステップ3 Re:Mindの詳しい言語仕様を学習できる方法を確認
ステップ2 Re:Mindの言語仕様の認知度を確認
ステップ1 Re:Mindの認知度を確認