Bonjour à tous !
Je lis dans un bouquin que :
Pascal c'est de la programmation impérative et
Caml de la programmation fonctionnelle.
Savez-vous ce que signifient ces 2 termes : "impérative" et "fonctionnelle" ?
Merci pour vos réponses !
Bonjour à tous !
Je lis dans un bouquin que :
Pascal c'est de la programmation impérative et
Caml de la programmation fonctionnelle.
Savez-vous ce que signifient ces 2 termes : "impérative" et "fonctionnelle" ?
Merci pour vos réponses !
Salut,
la programmation impérative est un style de programmation à forte valeur ajoutée en procédures, structures de contrôles, voire pointeurs, tels que le C,ou le Java. ex : Pour ceci, et cela, effectuer ligne suivante.
Quand à la fonctionnelle, elle regroupe les languages à forte valeur ajoutée en "fonctions" spécifiques, tellles pour le language Scheme, dérivé de Lisp, intelligence artificielle. ex : Si ceci, alors effectuer cela.
@+
n'oubliez pas de cliquer sur résolu...
== pas de question technique en MP. Merci ==
Si Lisp et son successeur Scheme sont bien des langages fonctionnels, les raisons ne sont pas celles que tu donnes...
Un langage impératif est basé sur le modèle des machines de Turing, c'est-à-dire de machines à états. A chaque instant, on a un ensemble de variables associées à un ensemble de valeurs, et les instructions sont effectuées les unes après les autres, elles agissent sur cet ensemble ou sur l'ordre de déroulement du programme, la première catégorie étant des instructions "à effets de bord". C'est la manière de naturelle de voir un programme puisque c'est ce qu'effectue réellement un processeur en vrai.
La programmation fonctionnelle est un style de programmation SANS effets de bord, donc en particulier sans assignation et sans variables, où la programmation constitue à définir des fonctions et à les appliquer (c'est le paradigme du lambda calcul avec un peu plus d'outils de manière à ce que ce soit plus simple à programmer ), et où un programme est juste la définition d'une valeur, qui peut être une fonction, ou un entier ou n'importe quoi qui est une valeur. Caml est un langage fonctionnel car il permet de faire de la programmation fonctionnelle (en particulier, les fonctions sont des objets de premier ordre, c'est à dire qu'on les traite comme n'importe quel autre objet, pas comme en C, et puis tu as le Let .. In .. qui permet un binding mais n'est pas une vraie définition de variables), mais il permet aussi de faire de l'impératif (références, structures de contrôle, type Unit) pour des raisons de simplicité. Un résultat important est que la puissance de calcul du fonctionnel est la même que celle de l'impératif, si tu le faire dans un style, tu peux le faire dans l'autre (cf Curryfication, Decurryfication), mais au cas par cas, l'un peut être plus simple à implanter que l'autre.
I'm the kind of guy that until it happens, I won't worry about it. - R.H. RoY05, MVP06
merci à vous deux pour vos réponses, mes idées sont plus claires !
De rien
PS : n'oublie pas la mention [RESOLU]. Thanks.
n'oubliez pas de cliquer sur résolu...
== pas de question technique en MP. Merci ==
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager