DEV Community

Diego Novais
Diego Novais

Posted on

6 2

Paradigma Declarativo

Continuando os artigos sobre os paradigmas de programação, vamos falar sobre o Paradigma Declarativo.

Contextualizando...

Diferente do Paradigma Imperativo, o Paradigma Declarativo tem como o foco principal o que fazer e não o como fazer.

Imagine que agora você vai pedir um sanduba com aquele combo caprichado, e para isso basta, você pegar o celular, abrir um desses aplicativos de delivery e de forma declarativa fazer o pedido e aguardar chegar, correto? E provavelmente você não se importa como o sanduíche foi feito e chegou, o importante é o resultado, ou seja, o pedido ter chegado de acordo com o que foi escolhido.

Se fossemos escrever um algoritmo, as instruções seriam passadas tudo de forma declarativa, ou seja, iriamos passar uma sequência de funções a serem executadas sem nos preocupar em como essas funções foram implementadas. De forma que o resultado esperado será sempre o mesmo, o pedido ter chegado de acordo com o que foi escolhido.

Ao nível computacional, estaríamos escrevendo um algoritmo de forma declarativa, onde passaríamos um passo a passo do que fazer para que o computador possa executar, porém, com um nível maior de abstração.

Dessa forma, o programador deve preocupar com o resultado esperado e não necessariamente em como o resultado deve ser computado.

Linguagens de programação

Algumas linguagens baseiam-se no modelo declarativo, dentre elas: Elixir, Erlang, Haskell, Lisp, SQL.

Outras linguagens possibilitam um mix entre os paradigmas imperativo e declarativo, conhecidas como linguagens multi-paradigmas (veja este artigo que escrevi sobre linguagens multi-paradigmas).

Exemplos de linguagens de programação multi-paradigma são: C++, Groovy, Scala, Swift, Ruby, Lua e Python.

Sentry image

See why 4M developers consider Sentry, “not bad.”

Fixing code doesn’t have to be the worst part of your day. Learn how Sentry can help.

Learn more

Top comments (0)

A Workflow Copilot. Tailored to You.

Pieces.app image

Our desktop app, with its intelligent copilot, streamlines coding by generating snippets, extracting code from screenshots, and accelerating problem-solving.

Read the docs

👋 Kindness is contagious

Please leave a ❤️ or a friendly comment on this post if you found it helpful!

Okay