“Domain pemrograman” dalam ilmu komputer dan pemrograman komputer adalah istilah umum yang mengacu pada bidang atau masalah yang dirancang untuk dioperasikan atau dipecahkan oleh sebuah program, bahasa pemrograman, atau sintaksis bahasa. Istilah yang paling sering digunakan saat merujuk bahasa pemrograman khusus domain, yaitu bahasa pemrograman yang dirancang untuk secara khusus menangani kebutuhan satu bidang atau masalah. Tidak ada spesifikasi formal yang nyata untuk apa yang merupakan atau bukan domain pemrograman, meskipun ada beberapa kategori luas yang umum digunakan, seperti bisnis, Internet dan jaringan, dan beberapa domain yang lebih spesifik, seperti pengenalan optik atau pesan. Istilah ini cukup abstrak, sehingga paling sering diterapkan selama penelitian akademis atau selama tahap desain pengembangan perangkat lunak.
Salah satu tujuan untuk mendefinisikan domain pemrograman adalah untuk membantu memodelkan bahasa pemrograman khusus domain. Ini berarti bahwa, jika domain pemrograman didefinisikan sebagai email Internet, maka bahasa pemrograman akan dirancang selama tahap desain awal secara khusus untuk mengatasi masalah yang hanya terkait dengan email Internet, biasanya pada tingkat yang sangat tinggi untuk programmer akhir. Dalam contoh ini, bahasa pemrograman khusus domain untuk domain pemrograman email Internet dapat menyertakan perintah seperti “send_to_address” atau “check_valid_address” yang digunakan untuk mengatasi masalah jaringan tertentu yang terkait dengan email Internet tetapi tidak memiliki tujuan yang lebih luas dan lebih umum di luar itu .
Dalam arti yang lebih luas, domain pemrograman juga bisa menjadi konsep penting saat menggunakan desain berbasis domain. Jenis pola desain perangkat lunak ini mengarahkan bahasa pemrograman dan seluruh infrastruktur aplikasi dan logika kontrol di sekitar domain. Dengan menghubungkan domain pemrograman ke tingkat dan tahap pengembangan yang berbeda, konteks bagian aplikasi tertentu muncul dan, dalam program yang sangat kompleks, dapat mempermudah pemrogram dan insinyur untuk memecahkan masalah dan memvisualisasikan fungsi bagian dalam program.
Komplikasi yang dapat ditemui dalam industri pengembangan perangkat lunak yang lebih luas adalah bahwa, sementara banyak tim pengembangan mungkin menggunakan domain pemrograman dan model terkait domain, tidak ada standarisasi tentang apa sebenarnya domain itu, bagaimana namanya, atau bagaimana seharusnya. divisualisasikan. Apa yang oleh satu perusahaan mungkin disebut domain bisnis mungkin disebut domain perusahaan oleh perusahaan lain. Ketika aplikasi, pola, dan kerangka kerja dikembangkan untuk domain tertentu oleh satu perusahaan, mereka dapat dipublikasikan, diiklankan, atau dijual sebagai alat pengembangan atau solusi untuk perusahaan lain yang mungkin bekerja dalam domain yang sama. Tanpa standar untuk penamaan domain, solusi berbasis domain yang ada bisa saja luput dari perhatian.