はじめに
日本語トランスコンパイラ言語 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ステップは言語仕様の学習成果のスコープの確認となります。
目次
「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の認知度を確認