Programação procedimental

Da Wikipédia, a enciclopédia livre

Programação procedural ou programação procedimental é um paradigma de programação que se baseia em procedimentos, que são executados numa sequência.[1] Ela é derivada da programação imperativa, mas acrescentando procedimentos (em inglês, procedure calls), de forma a organizar o código em blocos que possam ser reutilizados.[2]

Os procedimentos, também conhecidos como rotinas,[3] sub-rotinas,[4] métodos,[5] ou funções[4] simplesmente contêm um conjunto de passos computacionais a serem executados. Um dado procedimento pode ser chamado a qualquer hora durante a execução de um programa, inclusive por outros procedimentos ou por si mesmo.

A programação procedural é geralmente uma escolha melhor que a programação sequencial e não estruturada em muitas situações que envolvem uma complexidade média e requerem facilidade de manutenção. Possíveis benefícios são a habilidade de reutilizar o mesmo código em diferentes lugares no programa sem copiá-lo, ser uma forma mais fácil de organizar o fluxo do programa que uma coleção de comandos "goto" ou "jump" (que podem transformar um programa extenso e complexo num código espaguete), e a habilidade de ser fortemente modular e estruturado.

Procedimentos e modularidade

Resumir
Perspectiva

A modularidade é uma característica geralmente desejável, especialmente em programas grandes e complicados. Ela pode ser alcançada com a utilização de procedimentos com canais de entrada e saída estritamente definidos, usualmente acompanhados de regras claras sobre quais tipos de entrada e saída são permitidos ou esperados. As entradas costumam ser especificadas sintaticamente na forma de argumentos, e as saídas entregues na forma de valores de retorno.

O gerenciamento de escopo é outra técnica que ajuda a manter procedimentos fortemente modulares. Ela impede que o procedimento acesse variáveis de outros procedimentos (e vice-versa), incluindo instâncias anteriores de si mesmo, sem autorização explícita. Isto ajuda a impedir confusões entre variáveis com o mesmo nome sendo utilizadas em locais diferentes, e também que os procedimentos atrapalhem a execução um do outro.

Procedimentos menos modulares, frequentemente utilizados em programas pequenos ou escritos rapidamente, tendem a interagir com um grande número de variáveis no ambiente de execução, que também podem ser modificadas por outros procedimentos. O fato de que muitas variáveis agem como pontos de contato entre as várias partes do programa é o que o torna menos modular.

Por causa da habilidade de especificar uma interface simples, de serem auto-contidos, e de serem reutilizados, procedimentos facilitam a criação de programas ou bibliotecas de programação por várias pessoas ou grupos diferentes.

Comparação com a programação imperativa

A maioria das linguagens procedurais também são linguagens imperativas,[carece de fontes?] pois fazem referências explícitas ao estado do ambiente de execução. Isto pode significar desde variáveis (que podem corresponder aos registradores do processador) a algo como a posição da "tartaruga" na linguagem de programação Logo (que por sua vez pode ser desde um cursor na tela a um dispositivo físico que se move no chão de uma sala).

Algumas formas de programação imperativa, como a programação orientada a objetos não são necessariamente procedurais.

Linguagens de programação procedural

Para ser considerada procedural, uma linguagem de programação deve suportar o conceito de procedimentos, e possuir uma sintaxe para defini-los. Idealmente, ela deve suportar a especificação de tipos de argumentos, variáveis locais, chamadas recursivas e o uso de procedimentos em módulos distintos de um programa. Ela também pode suportar a distinção entre argumentos de entrada e de saída.

O exemplo canônico de uma linguagem de programação procedural é ALGOL. Uma linguagem em que a única forma de procedimento é um método é geralmente considerada orientada a objetos ao invés de procedural, e não será incluída nesta lista. Isto se aplica a C# e Java, mas não a C++.

Ver também

Referências

  1. Mueller, John Paul (29 de outubro de 2019). Programação Funcional Para Leigos. [S.l.]: Alta Books. p. 13. ISBN 9788550813509
  2. Rohit, Khurana. Object Oriented Programming with C++, 2nd Edition (em inglês). [S.l.]: Vikas Publishing House. p. 2. ISBN 9789325975644
  3. «Procedural programming». Isaac Computer Science (em inglês). Consultado em 14 de dezembro de 2022
  4. Rai, Laxmisha (20 de maio de 2019). Programming in C++: Object Oriented Features (em inglês). [S.l.]: Walter de Gruyter GmbH & Co KG. ISBN 9783110593846

Ligações externas

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.