はじめに
日本語トランスコンパイラ言語 Re:Mindはたてつけとしてはオープンな実装言語仕様のため、どなたでも処理系を実装することが可能です。逆転の発想で生成AIに実装言語仕様を読み込ませて、いくつかの抽象度レベルのプロンプトからトランスコンパイラ的な動きをさせてみようと思います。本記事はその第7ステップです。
Microsoft Copilot
生成AIはWindows11アプリケーションのMicrosoft Copilotとします。サインインした状態で使用しますが、第1ステップのプロンプト実行以前、この1年くらいの間で日本語トランスコンパイラ言語 Re:Mindに関連するセッションはないものとします。第5ステップの後にはサインアウトがあります。
第7ステップ
引き続きCopilotによる日本語トランスコンパイラ言語 Re:Mindの詳しい言語仕様(リンク先のページ記述の情報由来)の学習結果を確認する
第3ステップで確認された下記の方法での学習成果を確認してみます。
公式仕様文書やドラフト記事の提示
Qiitaなどに公開されている「Lv1.1ドラフト」「Lv1.2ドラフト」のリンクや抜粋を共有いただければ、その記述規則に従ってコード例を生成できます。
今回は第5ステップ、第6ステップでプロンプトに言語仕様情報へのリンクを含めましたが、それはこれまでの2回の学習で定着したと想定して、以下の簡単なプロンプトを投げてみます。
プロンプト
「オープンな実装言語仕様 日本語トランスコンパイラ言語 Re:Mind(リマインド)」の仕様情報2023 Lv1.1ドラフトに記載された内容を把握した上で、定番アルゴリズム:バブルソートのソースコードを日本語トランスコンパイラ言語 Re:Mindで書いてください。
生成レスポンス
承知しました。仕様ドラフト Lv1.1 に記載されている基本構文(関数宣言▽…△、代入「・」、繰り返し○…○ここまで、条件分岐◇…◇ここまで、return □return …)を踏まえ、バブルソートを Re:Mind 言語で記述します。
バブルソート(昇順)の Re:Mind 実装例
// 配列を昇順に並べ替えるバブルソート
▽public void バブルソートする(int[] 配列)
・int n = 配列.Length
○int i = 0 の間は繰り返す (i < n - 1)
○int j = 0 の間は繰り返す (j < n - i - 1)
◇配列[j] > 配列[j+1] の場合
・int tmp = 配列[j]
・配列[j] = 配列[j+1]
・配列[j+1] = tmp
◇ここまで
・j = j + 1
○ここまで
・i = i + 1
○ここまで
□return
△
第7ステップの評価
若干細かいところで気になる点はありますが、一部予想していました大崩れはなさそうで安心しました。
おわりに
第7ステップは以上です。第8ステップは引き続き言語仕様の詳細学習のステップとなりますが、少しフィードバックを試みるかもしれません。
目次
「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の認知度を確認