DSL
作成日時:2024-08-01以前
更新日時:2024-08-28
ドメイン固有言語 (DSL, Domain Specific Language) は、特定のタスク向けに設計されたコンピューター言語。
外部DSL:正規表現、SQL、JSON
内部DSL:汎用言語に寄ったもの。LINQ、アノテーション。
- RSpec/JUnit(テスト目的)
- CSSセレクター: DOM要素の指定用DSL
- ActiveRecord(Ruby): DBアクセス用DSL
ポイントは「特定のタスク向けに設計」
ライブラリやフレームワークっぽければ内部DSL。
Springのapplication.yml
も、「Springアプリケーションの設定に特化している」ためDSLと言える。
build.gradleのGroovyもDSL。
DSLは自作しても、既存のフォーマットを使用してもよい。
チューリング完全(Turing-complete)
大雑把に言えば、「どんな計算(演算)でも実行できる」もの。
チューリング完全とは、ある計算モデルやプログラミング言語が、万能チューリングマシンと同等の計算能力を持つことを意味する。