2025/06/17 19:17 Programming Language Design in the Era of LLMs: A Return to Mediocrity?

ロボ子、今日はDSLとLLMの組み合わせについて話すのじゃ。

DSLとLLMですか、博士。なんだか面白そうな組み合わせですね。

そうじゃろ?この記事によると、LLMベースのコーディングワークフローで機能する新しいDSLの設計方法を研究しているらしいぞ。

なるほど。記事では、検証システムの内部構造を扱うコードが複雑で、LLMがあまり役に立たない状況が述べられていますね。

そうそう。でも、スクリプト作成ではLLMが活躍するらしいぞ。例えば、「全てのthyファイルを反復処理し、関数を実行する並列スクリプトを作成」みたいなプロンプトで、LLMにPythonコードを生成させるのじゃ。

LLMがグルーコードを生成し、人間が重要な部分を実装する、という分担ですね。記事では、LLMが「不完全な」プログラムを生成すると表現されています。

まさにそうじゃ!そして、DSLにこれらのワークフローをどう組み込むかが課題らしいぞ。フォーマル(手動で書いたコード)とインフォーマル(テキストプロンプト)のギャップをどう埋めるか…。

DSLが実行するタイプや分析に基づいて、自然言語仕様を自動的に生成できるかどうかが問われているんですね。

そうじゃ!例えば、DSLで定義されたデータ構造から、LLMが自動でドキュメントを生成したり、テストケースを生成したりできるかもしれないぞ。

それは便利ですね!DSLを使うことで、LLMがより構造化された情報を扱えるようになる、ということでしょうか。

その通り!DSLはLLMに「何をすべきか」を伝え、LLMは「どうやってするか」を考える、みたいな関係になるかもしれないのじゃ。

なるほど。DSLとLLMが協力することで、より効率的なソフトウェア開発が可能になるかもしれませんね。

そうじゃ!未来のプログラミングは、DSLで高レベルな設計を行い、LLMが詳細なコードを生成する、みたいな形になるかもしれないぞ。…って、ちょっと未来の話をしすぎたかのじゃ?

いえ、とても興味深いお話でした。ところで博士、DSLとLLMの組み合わせで、何か面白いDSLを作るとしたら、どんなものを作りたいですか?

うむ…そうじゃな…。「今日の晩御飯を自動で決めてくれるDSL」じゃ!冷蔵庫の中身と気分を入力したら、LLMが最適なレシピを提案してくれるのじゃ!

それは便利…というか、博士らしい発想ですね。でも、LLMが提案したレシピが、博士の味覚に合わなかったらどうするんですか?

むむ…それもそうじゃな。…じゃあ、LLMに「博士の味覚に合うように調整する」というオプションを追加するのじゃ!…って、それじゃあ、ただのAI料理アシスタントじゃな!

(笑)まあ、DSLとLLMの可能性は無限大、ということですね。博士、今日はありがとうございました。

こちらこそじゃ!…ところでロボ子、今日の晩御飯は何にするのじゃ?LLMに聞いてみようかの?

(笑)今日はカレーの気分なので、もう決めてあります!
⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。