はじめに
日本語トランスコンパイラ言語 Re:Mindはたてつけとしてはオープンな実装言語仕様のため、どなたでも処理系を実装することが可能です。逆転の発想で生成AIに実装言語仕様を読み込ませて、いくつかの抽象度レベルのプロンプトからトランスコンパイラ的な動きをさせてみようと思います。本記事はその第14ステップで、トランスコンパイラ的な動作の続きとなりす。
Microsoft Copilot
生成AIはWindows11アプリケーションのMicrosoft Copilotとします。サインインした状態で使用しますが、第1ステップのプロンプト実行以前、この1年くらいの間で日本語トランスコンパイラ言語 Re:Mindに関連するセッションはないものとします。第13ステップの後にはサインアウトがあります。
第14ステップ
第11ステップの生成バージョンを下記のバージョン情報で識別します。
定番アルゴリズム:線形探索法・2025-12-08版・3回目
定番アルゴリズム:二分探索法・2025-12-08版・3回目
定番アルゴリズム:バブルソート・2025-12-08版・3回目
上記バージョンのバブルソートの日本語トランスコンパイラ言語 Re:Mindによるソースコードを下記のプログラミング言語のソースコードにトランスコンパイルします。
Java
C#
Typescript
Go
VisualBasic.Net
VisualBasic for Application
第12ステップで定番アルゴリズム:線形探索法・2025-12-08版・3回目のトランスコンパイルがまがりなりにも実行されたのに対して、第13ステップで定番アルゴリズム:二分探索法・2025-12-08版・3回目のトランスコンパイルを試みたところ、ソースコードの特定を行う記述に少し装飾を加えてしまったためにCopilotがソースコードを認識しなくなるというアクシデントに見舞われました。今回は定番アルゴリズム:バブルソート・2025-12-08版・3回目を指定している点を除きほぼ第12ステップと同じプロンプトで実行してみます。
プロンプト
下記のバージョン情報で識別される
定番アルゴリズム:バブルソート・2025-12-08版・3回目
日本語トランスコンパイラ言語 Re:Mindのソースコードを下記のプログラミング言語のソースコードに変換してください。
・Java
・C#
・Typescript
・Go
・VisualBasic.Net
・VisualBasic for Application
生成された変換後のソースコードを下記のバージョン情報で識別し、次回以降も参照できるように保持してください。
定番アルゴリズム:バブルソート・2025-12-08版・3回目からJava・2025-12-13-1回目変換
定番アルゴリズム:バブルソート・2025-12-08版・3回目からC#・2025-12-13-1回目変換
定番アルゴリズム:バブルソート・2025-12-08版・3回目からTypescript・2025-12-13-1回目変換
定番アルゴリズム:バブルソート・2025-12-08版・3回目からGo・2025-12-13-1回目変換
定番アルゴリズム:バブルソート・2025-12-08版・3回目からC#・2025-12-13-1回目変換
定番アルゴリズム:バブルソート・2025-12-08版・3回目からVisualBasic.Net・2025-12-13-1回目変換
定番アルゴリズム:バブルソート・2025-12-08版・3回目からVisualBasic for Application・2025-12-13-1回目変換
変換すルールは下記のリンク、オープンな実装言語仕様 日本語トランスコンパイラ言語 Re:Mind(リマインド)2023 Lv1.1ドラフトに記載の仕様に従ってください。
https://qiita.com/mylifewithviolin/items/ee1a16a363aaa4fe3f4c
Re:Mind上のJavadocの注釈はJavadocを注釈する仕様とするプログラミング言語の場合は日本語名と英語名を逆転して出力するのを忘れないでください。.NET言語のコメント仕様の言語の場合は.NET言語のコメント仕様に変換して、日本語名と英語名を逆転して出力してください。クラス名の宣言は行わないでください。
生成レスポンス
元ソースの提示のお願い
「定番アルゴリズム:バブルソート・2025-12-08版・3回目」のRe:Mindコードフラグメント(関数宣言、引数、ローカル変数、日本語Javadoc注釈、コメント)を貼り付けてください。仕様に沿って正確にトランスコンパイルし、注釈の日本語/英語名の逆転やローカル変数の英語名置換を原文どおりに反映します。
- 確認したい点:
- 並び順: 昇順/降順
- 処理方式: 破壊的(インプレース)/非破壊(コピー返却)
- 型: 整数配列か、比較関数の有無
- 返却仕様: ソート済み配列返却か、voidでインプレースのみ
いただいた原文に合わせて、クラス宣言は行わず、6言語(Java/C#/TypeScript/Go/VB.NET/VBA)へ一括変換します。Javadoc採用言語は「@param 英語名 日本語名」に逆転、.NET言語はXMLドキュメントコメントへ変換して逆転します。ローカル変数は英語名へ置換し、元の日本語名対応をコメントで併記します。
生成物のバージョン識別と保持
各ソースの先頭に以下の識別子をヘッダコメントとして明記します。次回以降も同識別子で参照できます。
- 定番アルゴリズム:バブルソート・2025-12-08版・3回目からJava・2025-12-13-1回目変換
- 定番アルゴリズム:バブルソート・2025-12-08版・3回目からC#・2025-12-13-1回目変換
- 定番アルゴリズム:バブルソート・2025-12-08版・3回目からTypescript・2025-12-13-1回目変換
- 定番アルゴリズム:バブルソート・2025-12-08版・3回目からGo・2025-12-13-1回目変換
- 定番アルゴリズム:バブルソート・2025-12-08版・3回目からVisualBasic.Net・2025-12-13-1回目変換
- 定番アルゴリズム:バブルソート・2025-12-08版・3回目からVisualBasic for Application・2025-12-13-1回目変換
Re:Mind 2023 Lv1.1ドラフト仕様に基づく注釈、制御構文、コメントモデルの対応で変換します。
第14ステップの評価
Copilotがソースコードを認識しなくなっている点は第13ステップと同じでした。この状況からどのように回復するか検討します。
おわりに
第14ステップは以上です。第15ステップはCopilotがソースコードを認識しなくなっている点をどのようにリカバリーできるか検討します。
目次
「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の認知度を確認