「ドメイン固有言語」の版間の差分

削除された内容 追加された内容
編集の要約なし
編集の要約なし
タグ: モバイル編集 モバイルウェブ編集
 
(2人の利用者による、間の3版が非表示)
1行目:
{{出典の明記|date=2023年12月}}
'''ドメイン固有言語'''(ドメインこゆうげんご)または'''ドメイン特化言語'''(ドメインとっかげんご、{{Lang-en|domain-specific language}}、DSL)は、特定のタスク向けに設計された[[コンピュータ言語]]<ref>「[[コンピュータ言語]]」という語は、プログラミング言語以外の言語も含む総称である。</ref>である。[[汎用プログラミング言語]]の対義語として用いられる。
 
DSL は一種類のタスクをうまく記述することに集中したプログラミング言語であり、古くから存在した。何らかの[[プログラミング言語]]それ自体の構文と処理系を利用する internal DSL(あるいは embedded DSL)と、独立した構文と処理系を持つ external DSL に大別されるが、そのいずれにしても近年の、自由度と機能が高いプログラミング言語により手軽に扱えるようになったことから広まっている。[[ドメイン固有モデリング]]の支持者によれば、ドメイン固有モデリングの発達と共にDSLという用語も広く知られるようになってきた、とされる。実際にはドメイン固有言語はモデリングとは特別な関係が何もあるわけでもなく(ドメイン固有モデリングのためのドメイン固有言語、といったものはあるが)、モデリング以外にもあらゆる分野のための言語がある。
23行目:
DSL には成熟したプログラミング言語なら当然持っているべきファイルシステムへのアクセス機能やプロセス間制御といった機能が欠けていることが多い。
 
多くのDSLは[[バイトコード]]や実行コードと言ったものにコンパイルされることはなく、他の様々な媒体向けのデータが生成されたり、システムに作用したりする(例えば、データベースにクエリを行う)。例えば[[Graphviz]]は[[PostScript]]<ref>PostScript自体も、チューリング完全性を備えた[[ページ記述言語]]という、一種のDSLである。</ref>、[[Graphics Interchange Format|GIF]]、[[JPEG]]などを出力し、[[Csound]]は音声ファイルを出力し、[[POV-Ray|POV]]のようなレイトレーシング用言語はグラフィックスのファイルを出力する。[[SQL]]は[[関係モデル]]に基づいて設計されている[[関係データベース]]のへのクエリ(アクセス)言語である。
 
しかし別の多くのDSLは処理性能などのために、(場合によっては何らかのプログラミング言語への変換を経由して)[[バイトコード]]や実行コードと言ったものにコンパイルされ、そのコンパイルされたコードが他の様々な媒体向けのデータを生成したり、システムに作用したりする。とくに、プログラミング言語に埋め込むEDSLは埋め込み先のプログラミング言語に変換されるので、DSLがプログラミング言語でないという認識は大間違必ずしも適切とはいえなである
 
=== プログラミングツール ===
71行目:
 
=== MediaWiki のテンプレート ===
[[MediaWiki]]のテンプレート機能は組み込み型DSLの一種であり、[[Wikipedia:Template メッセ主要なテンプレジの一覧|ページ内テンプレート]]の作成サポートとMediaWikiのページ間の[[トランスクルージョン]]を基本的目的としている。詳しくは、[[Help:テンプレート]]を参照。
 
=== ソフトウェア工学での応用 ===