Loading AI tools
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.
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.
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.
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++.
Seamless Wikipedia browsing. On steroids.
Every time you click a link to Wikipedia, Wiktionary or Wikiquote in your browser's search results, it will show the modern Wikiwand interface.
Wikiwand extension is a five stars, simple, with minimum permission required to keep your browsing private, safe and transparent.