Langage procédural, fonctionnel, impératif, structuré ?

Résolu/Fermé
Tupac900 Messages postés 43 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 14 mars 2017 - 3 juil. 2014 à 04:50
 peter - 31 août 2017 à 10:11
Bonjour les programmeurs !
Voila je suis assez nouveau en programmation j'arrive super bien à comprendre le thème de la programmation en général et ses notions,mais il y a truc que j'arrive toujours pas à comprendre : ce sont les différents types de langage.
J'arrive parfaitement à comprendre comprendre par exemple la POO (donc Programmation Orientée Objet) mais pour ce qui est du procédural, fonctionnel et impératif je pige que dalle.

Pourriez-vous m'expliquer svp en me donnant aussi des exemples, merci :)
A voir également:

4 réponses

KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
3 juil. 2014 à 21:31
Déjà, il n'y a pas de langage ceci ou langage cela. On parle de paradigme, ou de programmation, c'est la théorie. Le langage c'est la pratique et du coup c'est moins évident.

Par exemple avec le langage comme Java on peut utiliser à la fois la programmation structurée, procédurale, impérative, objet, agent, fonctionnelle. événementielle, itérative, récursive, etc.
Evidemment tous les programmes Java n'utilisent pas tout ces paradigmes, ce sont des morceaux de codes ici ou là qui vont être tantôt l'un ou l'autre, parfois entremêlés.

Du coup souvent dans les enseignements on apprend pas un langage en particulier, mais uniquement un concept de programmation ce langage là. En interdisant l'utilisation des autres paradigmes alors qu'ils existent.

Par exemple avec un langage à dominante fonctionnelle on utilisera plutôt le récursif et avec un langage procédural plutôt l'itératif. Et pourtant on peut croiser les deux la plupart du temps, et en pratique il serait une erreur de ne pas le faire.

Structuré : on découpe le code en morceaux plus petits, on parcourt le code de haut en bas et quand on passe à un autre morceau de code c'est toujours par le début qu'on commence.
Un langage qui utiliserait des label/goto n'est pas structuré par exemple.

Impératif : on décrit ce que l'on fait mécaniquement, il n'y a aucune part de choix qui n'appartient pas au développeur.
Par exemple une requête SQL n'est pas impérative, le SGBD fait comme il veut pour récupérer les données, de même pour le HTML, le navigateur internet est libre d'interpréter la page comme il veut.

Procédural : la structure du code est découpé en procédures (souvent appelées fonctions), l'ordre dans lequel ces fonctions sont appelées n'est pas important. On peut revenir pus haut dans le code pour appeler une autre fonction, voire s'appeler soit même. Généralement les fonctions peuvent avoir des paramètres et des résultats.

Fonctionnel : on manipule les fonctions comme des valeurs. On peut par exemple créer de nouvelles fonctions à partir d'autres fonctions, passer en paramètre d'une fonction une autre fonction etc. Idéalement on ne manipule que des fonctions pour produire une grosse fonction (le programme) auquel on passe les paramètres pour obtenir le résultat.
Un langage comme JavaScript utilise beaucoup le paradigme fonctionnel, même s'il peut aussi manipuler le reste des paradigmes. Le SQL pourrait être considéré comme idéalement fonctionnel.

Je crois avoir fait le tour de ceux qui te posaient problèmes, mais il y en a plein d'autres dont certains que l'on n'a pas encore inventé (ou du moins pas catégorisé).

Ce qu'il faut retenir c'est que ce sont surtout des considérations théoriques, une fois dans le code tout se mélange un peu et seules les grandes lignes ressortent, mais il ne faut pas s'y formaliser, car il est toujours possible de faire tout et n'importe quoi.

De toute façon au final, c'est l'ordinateur qui gère, la machine de Turing se fiche pas mal du paradigme utilisé, elle fera le traitement quoi qu'il lui en coûte (la mise en place d'un paradigme ou d'un autre peut évidement affecter le temps de calcul...)
15
c'est plus clair à présent merci
0
Tupac900 Messages postés 43 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 14 mars 2017 16
Modifié par Tupac900 le 3/07/2014 à 17:04
Salut,

J'avais déjà regardé sur Wiki et d'autres sites mais j'ai l'impression qu'ils se contredisent tous surtout avec les langages procéduraux et fonctionnels (sur sur ce site par exemple ils assemblent la programmation fonctionnel à la programmation procédural ?).

Pour l'instant ce que j'ai compris :
Langage impérative : contient des déclarations de variables et des boucles.
Langage procédural : langage avec procédure donc fonctions etc... et qui peuvent être appelés à n'importe quel moment.
Langage structuré : langage constitué par bloc {} avec des instructions telles que if, when etc...
Langage fonctionnel : on ne peut pas changer la valeur des variables, des fonctions.

Je suis débutant donc il se peut que je dise n'importe quoi,
Pouvez-vous ensuite me dire si j'ai juste ou faux, merci :)
2
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 3 019
3 juil. 2014 à 07:52
Bonjour,

Regarde Wikipédia pour commencer.
0
Tupac900 Messages postés 43 Date d'inscription mardi 11 décembre 2012 Statut Membre Dernière intervention 14 mars 2017 16
4 juil. 2014 à 18:32
Salut,

Ok merci j'ai beaucoup mieux compris maintenant :).

Bonne journée
0