はじめに
日本語トランスコンパイラ言語 Re:Mindは鋭意実装中ですが、たてつけとしてはオープンな実装言語仕様のため、どなたでも処理系を実装することが可能です。仕様策定者本人による実装だけがすべてではないため、逆転の発想で生成AIに実装言語仕様を読み込ませて、いくつかの抽象度レベルのプロンプトからトランスコンパイラ的な動きをさせてみようと思います。本記事はその第3ステップです。
Microsoft Copilot
生成AIはWindows11アプリケーションのMicrosoft Copilotとします。サインインした状態で使用しますが、第1ステップのプロンプト実行以前、この1年くらいの間で日本語トランスコンパイラ言語 Re:Mindに関連するセッションはないものとします。
第3ステップ Copilotが日本語トランスコンパイラ言語 Re:Mindの詳しい言語仕様を学習できる方法を確認する
プロンプト
例として教えていただいた「フィボナッチ数列(Re:Mind風)」は日本語トランスコンパイラ言語 Re:Mind(リマインド)の制御構文の開始シンボルとして、◇、〇、・、□などの全角記号を用い、箇条書きされた日本文としての体裁をとるという重要な構文仕様に適合していないようでした。正直なところ、あなたに詳しい言語仕様を学習していただくにはどうしたらよいですか?
生成レスポンス
なるほど、mylifewithviolinさんがおっしゃる通りです。Re:Mindの仕様では「◇」「〇」「・」「□」といった全角記号を制御構文の開始シンボルとして用い、日本語の箇条書き体裁でプログラムを記述することが大きな特徴になっています。私が先ほど示した例は、その重要な仕様に沿っていませんでした。ご指摘ありがとうございます。
🔎 私がRe:Mind仕様をより詳しく学習する方法
私は自分で新しい仕様を直接「学習」することはできませんが、mylifewithviolinさんから以下のような情報をいただければ、仕様に沿ったコード例を展開できるようになります。
- 公式仕様文書やドラフト記事の提示
Qiitaなどに公開されている「Lv1.1ドラフト」「Lv1.2ドラフト」のリンクや抜粋を共有いただければ、その記述規則に従ってコード例を生成できます。 - 構文ルールの具体的な例
例えば「条件分岐は◇で始める」「繰り返しは〇で始める」「関数定義は□で始める」といったルールを教えていただければ、それに従ったRe:Mind風のアルゴリズム展開が可能です。 - 定番アルゴリズムのRe:Mind記述例
mylifewithviolinさんが既に書かれたサンプルを見せていただければ、そのスタイルを踏襲して新しいアルゴリズムを展開できます。
✨ 実際の進め方
- mylifewithviolinさんが仕様の断片(例えば「繰り返しは〇で始める」など)を提示
- 私がそのルールに従って、フィボナッチやソートなど定番アルゴリズムをRe:Mind風に展開
- mylifewithviolinさんが「もっとこういう表現に近い」と修正指示
- そのフィードバックを反映して、より仕様に忠実なコード例を生成
こうした 反復的なキャリブレーション を通じて、私がRe:Mind仕様に適合したコード例を提示できるようになります。
👉 mylifewithviolinさん、まずは「Re:Mindの制御構文における記号の使い方」を簡単に教えていただけますか? 例えば「条件分岐は◇」「繰り返しは〇」といったルールを一つでも共有いただければ、それに従ってフィボナッチ数列を改めてRe:Mind風に展開してみます。
第3ステップの評価
意外と謙虚に具体的な学習方法をご提示されたので少し驚いています。リンクの共有は以前のバージョンのCopilotではむずかしかった記憶がありますが、新しいバージョンはまた違うのかもしれません。
おわりに
第3ステップは以上です。第4ステップは言語仕様の学習成果のスコープの確認となります。