Bildirime dayalı programlama, mantığa dayalı bir programlama dili paradigmasıdır ve bunun nasıl gerçekleştirilmesi gerektiğini detaylandırmak yerine bir programın neyi başarması gerektiğine daha fazla odaklanır. Bu, bir programlama komutunun veya işlevinin her adımını ayrıntılı olarak açıklayan zorunlu programlama ile doğrudan çelişir. Bildirim temelli bir programlama dili, programın çalışabilmesi için mantığa dayalı birkaç temel kılavuza sahip olacaktır, ancak her adım için belirli komutlar vermez. Bunun yerine, neyin başarılması gerektiğine ilişkin talimatları alır (örneğin, bir kod bölümünün sonucu) ve program bu görevi tamamlamak için mantıksal bir ilerleme izler.
Bildirime dayalı programlama, genel amaçlı olanlara değil, alana özgü dillere (DSL) aittir. Alana özgü diller yalnızca belirli bir alan için geçerlidir: HTML, örneğin, bir DSL'dir; yalnızca web sayfaları için HTML kodu için geçerlidir. SQL (Veritabanı yönetimi için Yapılandırılmış Sorgu Dili) bir diğeridir. Bu, bildirimsel programların bir görevi mantıksal olarak tamamlamasını mümkün kılar - çünkü program belirli bir alan için geçerli olduğundan, özellikle esnek veya değiştirilebilir olması gerekmez.
Bildirime dayalı programlama ve zorunlu programlama
Zorunlu programlama, her kod parçası için ayrıntılı talimatlar gerektiren Java ve C gibi diller için geçerlidir. Bir şeyin değiştirilebilmesi için bir şekilde programlanması gerekir. Bu, geliştiricilerin gerektiğinde programda değişiklik yapmasına olanak tanır. Bildirime dayalı programlama esnek değildir.
Bununla birlikte, bildirim temelli programlamanın okunması daha kolaydır ve daha az karmaşıktır. Geliştiricilerin kavraması zor olabilir çünkü dil bir sürecin nasıl tamamlandığını açıklamaz, ancak belirli bir mantığa sahip belirli bir alana ait programlar için yararlı bir paradigmadır.