2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

日本語プログラミング言語あおい(Aoi)最小セットの検証フェーズ(ステップ12)~最小セット(MVP)の完了評価~

2
Posted at

はじめに

日本語プログラミング言語あおい(Aoi)の実装言語仕様を生成AIに読み込ませて仕様駆動開発を展開しており、本記事は実装完了した「最小セット(MVP)」1の検証フェーズのステップ12になります。

日本語プログラミング言語あおい(Aoi)という自作言語の企画趣旨はこちらの記事をご参照ください。開発コード名を「Re:Mind」としており、AIとのやりとりではこの名称が使われています。

生成AI

GitHub Copilot

GitHub CopilotのPro+版。実装と検証の主担当。

Microsoft Copilot

GitHub Copilotのスーパバイザ2

本記事のステップ

1. 最小セット(MVP)

まずは「1つの小さなプログラムを通せる」レベルに絞る構成。本ステップではその定義内容が少し問題となります。Phase 1~8に分けて実装完了しました。1

docs\re_mind_syntax_classification.mdに記載の「最小セット(MVP)」の定義

docs\re_mind_syntax_classification.md
# Re:Mind 構文仕様の分類案
仕様書 [remind_specification.md](../remind_specification.md) をもとに、
実装順に合わせて Re:Mind の構文を次の3セットに分類する。

## 1. 最小セット(MVP)
まずは「1つの小さなプログラムを通せる」レベルに絞る構成。

- 基本宣言
  - 変数宣言・代入
  - 定数宣言
  - 基本型(int, string, bool)
- 基本文法
  - コメント
  - リテラル
  - 四則演算・論理演算
  - `=` による代入
- 関数
  - 関数呼び出し
  - 値を返す関数
  - `return` / `返す`
- 制御構文
  - `if` 相当の分岐
  - `while` 相当の繰り返し
  - ブロック終了の構文(`ここまで`)
- 実行文
  - `□` で始まる文の実行形式

このセットだけでも、コンソール出力系の簡単なプログラムをトランスコンパイル
できる土台となる。

Phase 9: 検証と品質改善

前回のステップでバブルソートに加えて線形探索法、二分探索法のJavaコード生成が完了しました。この時点でC#、VB.NET、Javaの3言語でバブルソート、線形探索法、二分探索法の定番アルゴリズムのコンソールアプリケーションのトランスコンパイルが成功する段階に到達しました。本ステップでは完了条件の評価に進みます。

Phase 10: 完了条件

完了条件がそれぞれのドキュメントでどのように定義されているかを再確認します。

docs\remind_detail_plan.mdに記載の完了条件
まずは、あおいの全体設計の出発点としたremind_detail_plan.mdに記載の完了条件です。こちらは最小セット(MVP)に分割する前の状態です。

docs\remind_detail_plan.md
# Plan: Re:Mind コンパイラ全体設計

TL;DR
Re:Mind の現状実装は BubbleSort サンプル向けの簡易パーサーと 1 つの C#生成器
に寄っているため、仕様に沿った完全なパイプラインへ再設計する。最初に字句解析と
構文解析を固め、その後 AST を拡張し、意味解析・IR 変換・各ターゲット言語生成
へ段階的に進める。最終的に Program.cs の ReMindSourceCode を入力として扱い、
Re:Mind から C#/Java/VB.NET へのコンソール出力ができる状態を目指す。

## 完了条件
1. Re:Mind の代表的なサンプルコードが Lexer と Parser を通過する
2. AST に必要な構文ノードが保持される
3. Imports の AliasClasses を利用した名前解決ができる
4. C#/Java/VB.NET のそれぞれに対して、コア構文の生成ができる
5. Program.cs から const string ReMindSourceCode を入力として受け取り、
 標準出力に生成コードを出せる

docs\plan.mに記載の完了条件
こちらは最小セット(MVP)に分割した後の状態です。

docs\plan.md
# Plan: Re:Mind コンパイラ全体設計

## 1. 目的
Re:Mind の仕様に沿って、入力テキストを解析し、AST を生成し、中間表現に変換し、
C# / Java / VB.NET へトランスコンパイルできるようにする。

## 4. 最小実装順
1. まず最小セットの構文だけ実装する
   - 変数宣言
   - 代入
   - 関数呼び出し
   - if / while
2. 次に中間セットを追加する
   - 配列
   - switch / for / do-while
   - クラス
   - 例外
3. 最後に拡張セットを追加する
   - imports
   - 継承
   - null 条件演算子
   - null 合体演算子

## 5. 完了条件
- Re:Mind の基本サンプルコードを C# / Java / VB.NET に変換できる
- `□コンソール.一行表示する` のような中核構文が正しく出力される
- 既存の Ast.cs と各 CodeGenerator の拡張が段階的に進められる
- 実装と仕様の対応関係が明確になる

この分割案を受けて、分割内容を詳細化したのが前記
docs\re_mind_syntax_classification.md
となります。

docs\implementation_tasks.mdに記載の完了条件
こちらは全体設計を受けて、実装方針としてコンパイラ/トランスコンパイラの内部構造を機能分割して、それぞれPhase分けしたドキュメントです。

docs\implementation_tasks.md
# Re:Mind 実装タスク一覧

このドキュメントは、Re:Mind の仕様を Lexer / Parser / AST / IR / CodeGenerator ごとの実装タスクとして整理した一覧である。

## 9. 完了条件
- Re:Mind の代表的なサンプルコードを C#/Java/VB.NET に変換できる
- `□コンソール.一行表示する` のような中核構文が正しく出力される
- 既存の Ast.cs と各 CodeGenerator を前提に、段階的に拡張できる構造に
なっている

いまから思えば、実装目標の範囲(コンパイラ/トランスコンパイラの内部モジュールの分割ではなく、カーバーする言語構文の範囲)を3段階に分割した際、1段階目「最小セット(MVP)」の完了条件の定義があまかったようです。(分割された状態でのそれぞれの完了条件の定義がなかった。)

「1つの小さなプログラムを通せる」レベルまたは「代表的なサンプルコードを通せる」の定義が少々あいまいだったため、どの程度の範囲をもって「代表的なサンプルコード」の対応が完了したのかの判定基準があいまいでした。

バブルソート、線形探索法、二分探索法の定番アルゴリズムのコンソールアプリケーションの構文範囲もそれなりに広範囲のため、とりあえず現状で最小セット(MVP)の定義とそれぞれのドキュメントの完了条件に照らし合わせてどの程度の状態なのかを評価してみます。

Microsoft Copilot

GitHub Copilotへのプロンプトは自分でだしていましたのでMicrosoft Copilotとのやりとりはなかったです。

GitHub Copilot

プロンプト1

docs\remind_specification.md
現在の実装が上記の仕様情報に記載の要件をどの程度満たしているかを
まとめて
docs\最小セットMVPの実装済要件.md
に出力してください。
また、実装されている機能で
docs\remind_specification.md
に未記載のため、追記を推奨する要件もいっしょにまとめてください。

生成レスポンス1

チャット上のレスポンスは割愛しますが、下記の
docs\最小セットMVPの実装済要件.md
が生成されました。

docs\最小セットMVPの実装済要件.md 一部抜粋
人間系のテスト評価検収ですと、ちょっと漏れそうなところまで詳しく報告してくれました。

docs\最小セットMVPの実装済要件.md
# Re:Mind 最小セットMVPの実装済要件

## 1. 調査目的

[remind_specification.md](./remind_specification.md) に記載された
Re:Mind仕様と、現在の実装を照合し、次の内容を整理する。

- 現在実装されている要件
- 部分的に実装されている要件
- 仕様に対して未実装の要件
- 仕様書に未記載だが、実装済みで追記を推奨する機能

対象実装:

- [Lexer.cs](../Lexer.cs)
- [Parser.cs](../Parser.cs)
- [Ast.cs](../Ast.cs)
- [IR.cs](../IR.cs)
- [IRBuilder.cs](../IRBuilder.cs)
- [SemanticResolver.cs](../SemanticResolver.cs)
- [CSharpCodeGenerator.cs](../CSharpCodeGenerator.cs)
- [JavaCodeGenerator.cs](../JavaCodeGenerator.cs)
- [VbNetCodeGenerator.cs](../VbNetCodeGenerator.cs)
- [Program.cs](../Program.cs)
- [MappingTable.cs](../MappingTable.cs)
- [Messages.cs](../Messages.cs)

## 2. 総合判定
現在の実装は、仕様全体を満たす完成実装ではない。一方、次の基本処理経路は成立
している。

MVPとして成立している範囲は、次の基本構文とコード生成である。
- 日本語識別子とRe:Mind制御記号の字句解析
- 通常の変数宣言、代入、基本リテラル
- 配列リテラル、添字アクセス
- 基本的な関数宣言・関数呼び出し
- `if`、`while`、限定的な `for`
- `return`
- `コンソール.一行表示する` / `Console.WriteLine` 相当の標準出力
- C#、Java、VB.NETの基本ソース生成
- CLIによる入力ファイルと出力ファイルの指定

仕様全体に対しては、定数、switch、例外処理、do-while、汎用的なimport/AliasClasses、クラス継承、インスタンス操作、完全な意味解析などが
未達である。

## 3. 要件別の実装状況
### 3.1 Lexerと基本記号

**判定: 部分実装**

実装済み:
- `▽`、`△`、`・`、`□`、`◇`、`〇` の専用トークン化
- `■`、`▼`、`▲` のimport/Alias用トークン化
- 識別子、数値、文字列の基本トークン化
- `+ - * / %`、比較演算子、代入演算子のトークン化
- `//` および `/* ... */` コメントのスキップ
- `/** ... */` ドキュメントコメントの保持
- 行番号と列番号の保持

未達・制約:
- `&&`、`||`、単独の `!` は一般的な論理演算として未対応
- `?`、`??` などのnull関連演算子は未対応
- 仕様上のすべての予約語を専用トークンとして管理していない
- 不正な入力に対する診断体系は限定的

### 3.2 変数
**判定: 部分実装**

基本形式は実装されている。

//```text
・int 年齢 = 34
・string 名前 = "花子"
・bool 特待区分 = true
・変数int 年齢
・public string 名前
//```

実装根拠:

- ASTに `LocalVariableDeclaration` と `FieldDeclaration` がある
- Parserにローカル変数・フィールド解析がある
- IRBuilderが変数宣言を `VariableDeclarationIR` へ変換する
- 3つのコード生成器が変数宣言を出力する

制約:
- `変数` 修飾子、アクセス修飾子、初期化式の組み合わせは限定的
- フィールド初期化子はASTに存在するが、IRで完全に保持されない
- 型検査、スコープ検査、未定義変数検査は不完全
- すべてのリテラル型・エスケープ規則には未対応

### 3.3 配列
**判定: 部分実装**

実装済み:

- `int[]`、`string[]` などの配列型の基本解析
- 配列リテラル
- 配列添字の読み取り
- 配列のLength相当の変換
- 配列を使ったBubbleSortの生成実例

未達・制約:
- 多次元配列は未対応
- 一般的な `new` による配列生成経路は不完全
- 配列要素代入は、入力形式や生成経路によって左辺情報が欠落する可能性がある
- 配列要素の型検査は不十分

### 3.4 定数
**判定: 未実装**

ASTには `ConstantDeclaration` が存在するが、Parser、IRBuilder、各CodeGeneratorの実際の処理経路が未接続である。次の仕様形式は、現在のMVPでは実装済みとは判定できない。

//```text
・定数int 年齢 = 34
・定数string 名前 = "花子"
//```

### 3.5 関数宣言・呼び出し
**判定: 部分実装**

実装済み:
- 関数宣言の戻り値型、名前、引数、本文の基本解析
- `MethodDeclaration`、`MethodIR` による中間表現化
- 関数呼び出し、引数、戻り値代入の基本経路
- `return` のJava生成を含む基本的な戻り値処理
- Javadocの `@param` による英字引数名指定

未達・制約:
- `□(引数)で 関数名` の日本語呼び出し形式は一般化されていない
- オーバーロード、既定値引数、参照渡しは未実装
- 引数型と戻り値型の照合は不完全
- 複雑なメンバー関数呼び出しは情報を失う可能性がある
- すべてのreturn構文を同じ精度で扱えるわけではない

### 3.6 クラス
**判定: 部分実装**

実装済み:
- `▽public クラス プログラム型` 相当のクラス解析
- クラス、フィールド、メソッドのAST/IR表現
- C#、Java、VB.NETの基本クラス生成
- クラス名のJavadocによる英字名指定

未達:
- クラス継承の解析・IR保持・生成が未完成
- 複数クラス、ネストクラス、継承階層の一般的な処理は未確認
- クラスフィールド初期化とアクセス制御の意味解析が不完全
- `▽public class クラス名 : 基底クラス` の仕様経路は未成立

### 3.7 クラスインスタンスとメンバー操作
**判定: 未実装に近い部分実装**

ASTには `MemberAccessExpression`、`NewExpression`、`InvocationExpression` 
などのモデルがある。しかし、ParserからIR、コード生成までの一貫した経路がない。

未達:
- `new()` によるクラスインスタンス生成
- インスタンスフィールドの読み書き
- インスタンスメソッド呼び出し
- `?.` null条件演算子
- `??` null合体演算子
- インスタンスメンバーの型解決

### 3.8 四則演算・論理演算
**判定: 部分実装**

実装済み:
- `+ - * / %`
- `== != < > <= >=`
- 二項演算と単項演算のAST/IR
- 基本的な中置記法のコード生成

未達:
- `&&`、`||`、単独の `!`
- BigDecimalのJava特例
- 演算子の型検査
- 複雑な式の括弧と優先順位の完全保持
- 真偽値・null・条件式の一貫した型処理

### 3.9 if分岐
**判定: 部分実装**

実装済み:

- `◇条件 の場合`
- `◇他に`
- 入れ子ifのAST/IR構造
- C#、Java、VB.NETの基本if生成
- Javaでは `else` ブロックを含む生成を確認済み

未達・制約:
- `◇他に 条件 の場合` のelse-ifを一般化できていない
- 条件式の型検査が通常の意味解析経路に統合されていない
- `やめる` などの制御語との組み合わせは未完成

### 3.10 switch
**判定: 未実装**

ASTには `SwitchStatement` と `SwitchCase` があるが、Parser、IR、
3つのCodeGeneratorに実装経路がない。

未実装項目:
- `◇値 で分岐する`
- case相当の `◇定数`
- `◇既定`
- `□脱出する` のswitch用break変換
- ターゲット別フォールスルー設定
- フォールスルー制御用CLIオプション

### 3.11 forループ
**判定: 部分実装**

実装済み:

- `〇int i=0,i<10,i++ 繰り返す`
- `ForStatement` と `ForIR`
- C#、Java、VB.NETの限定的なfor生成
- 配列処理サンプルでの実用例

未達・制約:
- 初期化・条件・反復式の形式が限定的
- 任意の型や複雑な式は未確認
- VB.NETは `++` と比較条件を前提とした変換
- 減算、複雑なiterator、ターゲット差異への一般対応は未実装

### 3.12 whileループ
**判定: 部分実装**

実装済み:
- `〇条件 の間は繰り返す`
- `WhileStatement` と `WhileIR`
- 3つのCodeGeneratorによるwhile相当の出力
- BubbleSortでのwhile生成実績

未達:
- `〇繰り返す` の無限ループ形式
- `〇ここから ... 〇条件 の間は繰り返す` のdo-while
- ループ制御語との一貫した接続

### 3.13 do-while
**判定: 未実装**

専用AST、Parser、IR、CodeGenerator処理がない。

### 3.14 break / continue
**判定: 未接続の部分実装**

ASTに `BreakStatement`、`ContinueStatement` があり、IRにも `BreakIR`、
`ContinueIR` がある。Java Generatorには出力処理もある。

しかし、ParserとIRBuilderがRe:Mind入力の `□脱出する`、`□ループ先頭へ` を
これらのノードへ接続していない。C#とVB.NETのIR経路も未対応であるため、
MVP実装済みとは判定しない。

### 3.15 例外処理
**判定: 未実装**

### 3.16 コメントとターゲット名指定
**判定: 部分実装**

実装済み:
- `//` と `/* ... */`
- `/** ... */` のドキュメントコメント
- クラス名、メソッド名、変数名の英字名指定
- `@param` による引数名指定
- C# XML、JavaDoc、VB XMLコメントの基本生成

未達:
- `@return` など全Javadoc要素
- コメント内容・空白・インデントの完全保持
- AST、IR、各Generator間のコメント情報の完全一致

### 3.17 import・AliasClasses
**判定: 固定例のみの部分実装**

実装済み:

- `ImportDeclaration`、`AliasClass`、`AliasMember` のモデル
- `SemanticResolver` のAlias解決メソッド
- `System.Console` 相当の固定マッピング
- `Console.WriteLine` / `System.out.println` の一部ターゲット変換

未達:
- `■`、`▼`、`▲` の入力を汎用的にParserで構築する経路
- AliasClassesのメンバー、引数、戻り値の完全なシンボル登録
- 任意ライブラリのターゲット別import変換
- Java、C#、VB.NET間の汎用名前解決

### 3.18 意味解析・シンボル解決
**判定: 部分実装**

実装済み:
- `SemanticResolver`、`SymbolTable`、各Scope型
- 日本語名と英字名の簡易解決
- Alias名の解決
- 一部の型推論・代入検査・条件検査用メソッド

未達・リスク:
- 通常の `Resolve()` でクラス、メソッド、フィールド、変数が完全登録されない
- `ResolveExpression()`、`ResolveStatement()` の一般経路が不十分
- 配列、メンバー、戻り値、null、条件式の型推論が不足
- 未定義識別子、引数数、引数型、戻り値型の診断が不完全
- nullable関連の警告が残っている

## 4. ターゲット言語別の達成度

### C#
**判定: 部分実装**

### Java
**判定: 部分実装**

### VB.NET
**判定: 部分実装**


## 5. MVPとして実装済みと判断できる最小要件

次の要件をMVPの実装済みセットとする。

1. UTF-8のRe:Mindソースをファイルから読み込める
2. 日本語識別子とRe:Mindの基本全角記号を字句解析できる
3. ドキュメントコメントからターゲット名を取得できる
4. namespace/class/methodの基本構造をAST化できる
5. ローカル変数、フィールド、代入をAST/IR化できる
6. 配列リテラルと添字アクセスを基本変換できる
7. 関数宣言、基本的な関数呼び出し、returnを変換できる
8. if、while、限定的なforを変換できる
9. Java、C#、VB.NETの基本ソースを出力できる
10. Console出力を各ターゲットの標準出力へ変換できる
11. CLIで入力ファイルと出力ファイルを指定できる
12. Javaについて固定JDKで生成ソースをコンパイル検証できる

この最小セットは、仕様全体ではなく、基本アルゴリズムとコンソール出力を対象
にしたトランスコンパイラMVPである。

## 6. 仕様書への追記を推奨する実装済み機能
~略~
## 7. 仕様全体を満たすための残課題

優先度の高い順に、次の実装が必要である。

1. Parser、IR、各Generatorの未対応ノードを一覧化し、定数・switch・例外
 ・do-whileを接続する
2. `Resolve()` でシンボル登録と型検査を統合する
3. import/AliasClassesを入力から解析し、汎用名前解決を実装する
4. クラス継承、new、インスタンスメンバー操作を実装する
5. break/continueをParserから各Generatorまで接続する
6. null条件、null合体、論理演算を実装する
7. C#、Java、VB.NETの共通テストケースとターゲット別コンパイルテストを整備する
8. CLI、文字コード、参照比較、エラーコードを処理系仕様として明文化する

## 8. 結論
現在の実装は、Re:Mind仕様の基本構文を使った小規模なアルゴリズムとコンソール
出力を、C#・Java・VB.NETへ変換するMVPとしては成立している。

ただし、仕様書に定義された全要件に対する実装率を完成度として扱うことはできない。
特に定数、switch、例外、do-while、クラスインスタンス、汎用AliasClasses、
意味解析は未実装または部分実装である。

したがって、現時点の適切な位置付けは次の通りである。

//```text
基本トランスコンパイルMVP: 実装済み
仕様全体の完全実装: 未達
ターゲット別の基本生成: 実装済み
汎用的な言語処理系: 部分実装
//```

## 9. 構文分類案のMVP要件との照合
[re_mind_syntax_classification.md](./re_mind_syntax_classification.md) 
の「1. 最小セット(MVP)」に記載された要件を、現在の実装状態と照合した。

### 9.1 判定基準
- **満たす**: 現在のLexer、Parser、AST/IR、CodeGeneratorの経路で基本形を
  処理できる
- **部分的に満たす**: 基本例は処理できるが、仕様に含まれる表記や型・組み合わせ
  に制限がある
- **満たさない**: ASTの型だけが存在する、またはParser以降の処理経路が未接続で
  ある


9.2 MVP項目別判定

構文分類案のMVP要件 判定 現在の実装状態
変数宣言・代入 部分的に満たす 通常のローカル変数、フィールド、基本代入は処理できる。フィールド初期化、複雑な左辺、型検査には制限がある。
定数宣言 満たさない ConstantDeclaration はASTにあるが、Parser、IRBuilder、各CodeGeneratorの実処理が未接続。
基本型 int、string、bool 部分的に満たす int と string はサンプルで利用できる。bool は型名・一部の出力経路はあるが、真偽値リテラルと型検査が不十分。
コメント 満たす //、/* ... */、/** ... */ の基本処理とターゲットコメント生成がある。詳細なJavadoc要素は部分対応。
リテラル 部分的に満たす 数値と文字列は処理できる。真偽値、null、エスケープ、複雑なリテラルは不十分。
四則演算 部分的に満たす + - * / % と比較演算子は処理できる。型検査、括弧、複雑な式の完全保持は未達。
論理演算 満たさない &&、`
= による代入 部分的に満たす 基本変数代入は処理できる。配列要素・メンバー代入は入力形式と生成経路に制限がある。
関数呼び出し 部分的に満たす 基本的な関数呼び出しとConsole出力は処理できる。日本語の省略形、インスタンス呼び出し、引数型検査は不十分。
値を返す関数 部分的に満たす ReturnIR と各Generatorの基本return出力はある。Parserのreturn表記と型整合性は限定的。
return / 返す 部分的に満たす 探索アルゴリズムのJava生成で return を確認済み。すべての仕様表記、文脈、ターゲットの差異には未対応。
if 相当の分岐 部分的に満たす ◇条件の場合、◇他に、入れ子、基本else生成に対応。else-ifと条件型検査は不十分。
while 相当の繰り返し 部分的に満たす 〇条件の間は繰り返す とBubbleSortの生成実績がある。無限ループ形式や制御語との接続は未達。
ブロック終了の ここまで 部分的に満たす if/while/forの基本ブロック終端として扱える。すべての省略形・入れ子・do-while形式には未対応。
□ で始まる文の実行形式 部分的に満たす 代入、関数呼び出し、Console出力などの基本文を処理できる。戻り値代入、メンバー呼び出し、制御語は限定的。

### 9.3 MVP全体の判定

**判定: 部分達成。分類案に定義されたMVP全体を満たしているとは言えない。**

理由は、分類案のMVPに必須の次の要件が未達または不十分だからである。

1. 定数宣言がParserからCodeGeneratorまで接続されていない
2. `&&`、`||`、`!` の論理演算が未実装である
3. `bool`、null、リテラルの処理と型検査が不十分である
4. return、代入、関数呼び出しに対応できる表記と型の範囲が限定されている
5. `ここまで` と `□` の基本形はあるが、仕様上の省略形・複合形まで保証できない

一方、次の**縮小版MVP**は成立している。

//```text
変数・基本代入
数値・文字列リテラル
基本的な算術・比較演算
関数宣言・基本呼び出し・限定的なreturn
基本if・while・限定for
Console出力
C#・Java・VB.NETの基本コード生成
//```

したがって、現在の実装の正確な位置付けは次の通りである。

//```text
分類案のMVP全体: 部分達成
縮小版の基本トランスコンパイルMVP: 達成
分類案の中間セット: 配列・for・コメントなど一部先行実装
分類案の拡張セット: 固定マッピングを除き未達または部分実装
//```

### 9.4 分類案のMVPを正式に満たすための追加作業

優先度の高い順に、次を実装・検証する必要がある。

1. 定数宣言をParser、IR、C#、Java、VB.NET Generatorへ接続する
2. `&&`、`||`、`!` と真偽値リテラルをLexer、Parser、型検査、Generatorへ
  接続する
3. `return` / `返す` の構文を統一し、戻り値型と経路の検査を追加する
4. 代入、関数呼び出し、配列・メンバー操作の左辺と引数型を検証する
5. `ここまで`、省略形、入れ子構文の受入テストを追加する
6. 1つのMVPサンプルに定数、bool論理式、return、if、while、Console出力を
  組み込み、3ターゲットでコンパイル検証する

本ステップの評価

「最小セット(MVP)」の3言語対応状況を評価しました。検証フェーズでの検証用サンプルコードの与え方が必ずしも「最小セット(MVP)」の要件を満たしておらず、逆に「中間セット」「拡張セット」の要件を一部対応していたため、これらのセットは部分対応、先行対応という判定となりました。次回は「最小セット(MVP)」の要件を満たすための優先度の高い課題を実行してみます。

おわりに

以上です。いかがでしたでしょうか?なにか似たようなことをされようとしている方々の参考になれば幸いです。

  1. AIとつくる日本語プログラミング言語Aoi (あおい) - Qiita
    ステップ12 実行フロー統合の最小実装 ↩ ↩2

  2. スーパバイザとしてMicrosoft Copilotを使いGitHub CopilotのCodeAgent推論量を最小化するプロンプトをCopilotで生成しGitHub CopilotのCodeAgentで実行という工法?を採用しています。 ↩

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?