Ngôn ngữ miền chuyên biệt hay
ngôn ngữ đặc tả chuyên biệt (tiếng Anh:
domain-specific language hay
DSL) là một
ngôn ngữ máy tính chuyên dùng cho một
miền ứng dụng. Điều này trái ngược với
Ngôn ngữ đa năng (general-purpose language - GPL), vốn được áp dụng rộng rãi trên các miền. Có rất nhiều loại DSL, trải dài từ các ngôn ngữ được dùng cho miền phổ biến, như
HTML cho các trang web, đến các ngôn ngữ chỉ được dùng cho một hoặc một phần của phần mềm, như mã mềm
MUSH. DSL có thể được chia nhỏ hơn theo loại ngôn ngữ, và bao gồm
ngôn ngữ đánh dấu miền chuyên biệt,
ngôn ngữ mô hình miền chuyên biệt (tổng quát hơn,
ngôn ngữ đặc tả), và
ngôn ngữ lập trình miền chuyên biệt. Ngôn ngữ máy tính có mục đích đặc biệt luôn tồn tại trong thời đại máy tính, nhưng thuật ngữ "ngôn ngữ miền chuyên biệt" trở nên phổ biến do sự gia tăng của
mô hình miền chuyên biệt (domain-specific modeling). Các DSL đơn giản hơn, đặc biệt được dùng bởi chỉ một ứng dụng, đôi khi được gọi một cách không chính thức là
ngôn ngữ nhỏ (mini-language).Điểm khác biệt giữa ngôn ngữ đa năng và ngôn ngữ miền chuyên biệt không lúc nào cũng rõ ràng, vì một ngôn ngữ có thể có những tính năng chuyên biệt cho một miền cụ thể nhưng được áp dụng rộng rãi hơn, hoặc ngược lại về nguyên tắc có khả năng áp dụng rộng rãi nhưng thực tế được sử dụng chủ yếu cho một miền cụ thể. Ví dụ như, ban đầu
Perl được phát triển như một ngôn ngữ xử lý văn bản và kết dính, cho cùng miền với
AWK và
shell script, nhưng sau đó được dùng như một ngôn ngữ lập trình đa năng. Ngược lại,
PostScript là một ngôn ngữ
Turing hoàn chỉnh, và trên nguyên tắc có thể dùng cho bất cứ tác vụ nào, nhưng thực tế nó chỉ được dùng như một
ngôn ngữ mô tả trang.