Précédent Index Suivant

Introduction

À la différence de la programmation fonctionnelle où on calcule une valeur par l'application d'une fonction à ses arguments sans se soucier du déroulement des opérations, la programmation impérative est plus proche de la représentation machine car elle introduit un état mémoire que le déroulement des actions d'un programme va modifier. On appelle instructions ces actions des programmes et un programme impératif est une suite, ou une séquence, d'instructions. L'état mémoire est susceptible d'être modifié à l'exécution de chaque instruction. On considère les opérations d'entrées-sorties comme des modifications de la mémoire, de la mémoire vidéo ou de fichiers.

Ce style de programmation est directement inspiré de la programmation assembleur. On le retrouve dans les premiers langages évolués généralistes (Fortran, C, Pascal, etc. ). En Objective CAML les éléments suivants du langage correspondent à ce modèle : Certains algorithmes s'écrivent plus facilement dans ce style de programmation. On peut citer comme exemple le produit de deux matrices. Même s'il est effectivement possible de le traduire dans une version purement fonctionnelle, où des listes remplacent les vecteurs, cela n'est ni naturel, ni efficace par rapport à une écriture impérative.

L'intérêt d'intégrer ce modèle dans un langage fonctionnel est de pouvoir écrire certains algorithmes dans ce style de programmation quand ceux-ci s'y prêtent. Les deux principaux désavantages par rapport au style purement fonctionnel sont : Néanmoins, avec quelques règles de prudence dans l'écriture des programmes, le choix entre plusieurs styles de programmation offre de plus grandes possibilités d'écriture d'algorithmes, ce qui est l'objectif principal des langages de programmation. En outre, un programme écrit dans un style proche de l'algorithme utilisé sera plus simple donc aura plus de chances d'être correct (ou, tout du moins, plus rapidement mis au point).

Pour ces raisons, le langage Objective CAML possède des types de données dont les valeurs sont physiquement modifiables, des structures de contrôle de l'exécution des programmes et une bibliothèque d'entrées-sorties dans un style impératif.


Précédent Index Suivant