La programmation procédurale est une approche de la programmation qui constitue l’un des éléments de base des nombreux composants de langage (la fonctionnalité n’en est pas une).
La plupart des langues appartiennent à l'ensemble de la "programmation procédurale" et il s'agit probablement de l'approche de conception la plus naturelle pour la plupart des gens (si vous pensez en termes de OO, alors je dirais que vous êtes en minorité).
BASIC est procédural.
Comme d'autres l'ont dit, il s'agit d'un mécanisme permettant de structurer les programmes de manière séquentielle.
- D'abord je fais x
- Deuxièmement je fais y
- Troisièmement je fais Z
Cela nécessite un mécanisme de définition de "procédures" - des blocs de code nommé similaires aux méthodes OO, pouvant accepter zéro à plusieurs paramètres et éventuellement renvoyer une valeur (qui serait alors généralement appelée une fonction - ce qui peut entraîner votre confusion avec les langages fonctionnels )
Le paradigme ne dicte pas ce que vous ferez, ni la manière dont les choses circulent.
Il décrit simplement que le programme sera structuré comme une série de procédures (ou fonctions) fonctionnant de manière séquentielle. Les données sont ensuite définies indépendamment des procédures.
Cela diffère de la programmation orientée objet, qui structure le programme autour de collections de données et de méthodes (non de fonctions) qui agissent sur ces données.
Une façon de penser à cela est en termes de portée des données.
Dans un langage procédural, la portée est assez simple. Une variable peut être dans l'étendue d'une procédure donnée (déclarée localement), jusqu'au niveau des commandes appelant en haut (déclarée globalement), avec des étendues imbriquées entre.
Dans un langage orienté objet, vous ajoutez un nouveau contexte de portée, celui de l'objet actuellement utilisé, qui est orthogonal à ce qui précède.
Une autre façon de penser procédurale, par rapport à orientée objet, consiste à considérer un langage orienté objet où toutes les méthodes doivent être déclarées comme statiques. Le résultat est un langage procédural dans lequel les classes peuvent être utilisées pour regrouper des procédures.