Skip to main content

Что такое декларативное программирование?

Декларативное программирование - это способ указать, что должна делать программа, а не указать, как это сделать. Большинство компьютерных языков основаны на шагах, необходимых для решения проблемы, но некоторые языки указывают только основные характеристики проблемы и оставляют на усмотрение компьютера определять наилучший способ решения проблемы. Говорят, что первые языки поддерживают императивное программирование, а вторые поддерживают декларативное программирование.

Можно рассмотреть следующий пример из SQL, чтобы получить все регионы продаж, где прибыль превышает определенное число, скажем, 700 долларов США (USD), из данных о продажах.

Выберите регион, прибыль от продаж, где прибыль> 700

Этот оператор не указывает, что должна делать система SQL для получения данных. Система SQL может просматривать каждую запись о продажах и определять, выполняется ли условие, или быстро получать первые несколько записей из предварительно отсортированных данных. Заявление только указывает на характер желаемых данных.

Пролог - это декларативный язык программирования, который указывает на логические отношения между сущностями.

предок (M, C): - мать (M, C)
предок (X, Z): - мать (X, Y), предок (Y, Z)

Вышеуказанная программа указывает на трюизмы. Если M является матерью C, то M является предком C. Если X является матерью некоторого человека Y, который является предком Z, то X является предком Z. Учитывая это и некоторые факты матери и ребенка, программа может ответить на вопросы о всей материнской родословной.

Во время выполнения программы система Prolog создает ряд истинных утверждений, создавая тем самым базу знаний. Эта база знаний ищется эффективно самостоятельно. Создатель вышеуказанной программы не указывает, как искать.

HTML и CSS являются декларативными языками программирования. Например, пример HTML <table border = "1"> указывает тонкую границу. Пример CSS это цвет: синий . Это определяет цвет текста. Как видно из этих примеров, HTML и CSS определяют, что должно отображаться на веб-странице, а не как это сделать.

Преимущество декларативных языков программирования в основном двоякое. Программы лаконичны; это облегчает даже для непрограммистов получение решений. В приведенном выше примере SQL аналитик или специалист по поддержке бизнеса может получить необходимую информацию. Аналогичным образом, непрофессионалы могут писать приемлемые веб-страницы с помощью простых команд HTML и CSS.

Второе преимущество декларативной модели программирования заключается в том, что повторяющийся императивный код, который указывает, как решать проблемы, предоставляется в компьютерной системе за кулисами. Такой код может быть сделан очень эффективным и может включать лучшие идеи из вычислений. Это может использовать преимущества параллелизма.