メインコンテンツへスキップ
AI用語集に戻る
AI用語

ドメイン特化言語

Domain Specific Language

解説

特定の分野や目的に特化して設計された、コンピュータに指示を出すための簡易的なプログラミング言語です。

Domain Specific Language(ドメイン特化言語)の図解

さらに詳しく解説

ドメイン特化言語(Domain-Specific Language; DSL)は、特定の用途・領域に特化して設計されたプログラミング言語または記述形式です。汎用言語(Python、Javaなど)と対比される概念で、AI関連では設定ファイル・ワークフロー記述・モデル定義などに広く使われています。

汎用言語との対比

観点汎用言語DSL
適用範囲何でも書ける特定領域のみ
学習コスト高い低い(領域者向け)
表現力高い限定的
簡潔さ一般的領域では極めて簡潔
Python、JavaSQL、HTML、YAML

身近なDSLの例

  • SQL:データベース問い合わせ
  • HTML / CSS:Webページ記述
  • 正規表現:文字列パターン
  • Dockerfile:コンテナ定義
  • Terraform HCL:インフラ定義
  • GraphQLAPI問い合わせ

AI/機械学習でのDSL

設定・パイプライン記述

DSL用途
YAMLモデル設定、ワークフロー
JSONAPI入出力、設定
TOML設定ファイル

モデル定義系

  • PromptFlow / LangChain DSLLLMパイプライン定義
  • Hugging Face accelerate config分散学習設定
  • MLflow Recipes機械学習パイプライン

検索・クエリ系

  • Lucene クエリ構文:全文検索
  • Elasticsearch DSL:複雑な検索条件
  • Cypher:グラフDB検索

内部DSL vs 外部DSL

種類概要
内部DSLホスト言語のAPIで疑似的にDSL風に書くPythonのpipe演算子等
外部DSL独立した文法を持つ別言語SQL、HTML

メリット

  • 領域知識を簡潔に表現できる
  • 非エンジニアでも記述可能(業務担当者でも書けるDSLが理想)
  • ミスが起きにくい(適用範囲が狭く検証しやすい)
  • 自動化・コード生成と相性が良い

留意点

  1. 設計の難しさ:良いDSLを作るのは難易度が高い
  2. エコシステム不足:マイナーなDSLは情報・ツールが少ない
  3. 過度な独自化:標準形式を捨てると保守性が下がる
  4. 学習コスト:汎用言語に詳しい人ほど違和感を持つことも

AI実務でのDSLの位置付け

生成AI時代では、自然言語が一種の"究極のDSL"になりつつあります。一方で、自動処理の信頼性や再現性を求めるシーンでは、構造化されたDSL(YAMLでのワークフロー定義など)が依然重要です。

DSLは「表現したい領域に最適化された言語」であり、AI開発の各層(学習・推論・運用)で見えない形で活躍しています。

AI用語集に戻る

この用語をシェア

AIの導入についてご相談ください

「うちの会社でも使えるの?」「何から始めればいい?」
そんな疑問に、30分のオンライン相談でお答えします。

無料相談を予約する