LANGAGES DE PROGRAMMATION

La caractéristique principale des ordinateurs est leur capacité à mémoriser à la fois les données à traiter et le traitement que l’on veut leur faire subir. Cette double faculté permet de décrire une fois pour toutes les traitements à réaliser et de les ranger en mémoire. Il ne reste plus qu’à introduire les données dans la machine pour la voir répéter fidèlement les instructions qui lui ont été fournies.

Il est donc nécessaire de pouvoir décrire les séquences d’opérations envisagées (les programmes). On procède, dans un premier temps, à l’analyse du problème à résoudre et des solutions à apporter en employant des notations qui conduisent à une description indépendante des machines : l’algorithme. On passe ensuite à la programmation proprement dite, qui consiste à adapter un algorithme à une machine donnée. On range sous le nom d’algorithmique la connaissance des algorithmes classiques (solutions connues et éprouvées à des problèmes habituels) et les techniques de conception d’algorithmes.

Cette description se fait à l’aide d’un langage de programmation. On distingue, parmi les langages de haut niveau, les langages spécialisés, conçus pour un domaine particulier : simulation, calcul symbolique, commande numérique, C.F.A.O. (conception et fabrication assistées par ordinateur), et les langages généraux, utilisables pour tout type d’application. Il existe un grand nombre de langages, qui se différencient sur des critères tels que la généralité, la simplicité d’apprentissage, la facilité de lecture et l’existence d’outils d’aide à l’écriture de programmes corrects.

Le langage machine n’utilise que deux valeurs : 0 et 1. Ecrire des instructions en langage machine cela veut dire écrire une suite de nombres en numération binaire. Réaliser les programmes en langage machine serait très long, très difficile et les erreurs seraient nombreuses. En réalité on écrit les programmes dans un langage conventionnel qui doit être ensuite traduit en langage machine. Pour réaliser cette traduction on emploie des programmes appelés compilateurs et interpréteurs.

Un programme est constitué par une suite d’instructions élémentaires, rangées dans des emplacements contigus. Une fois donnée l’adresse de la première instruction, la suite des instructions est parcourue à l’aide du compteur ordinal. Les données sont localisées, lors de l’exécution d’une instruction, par décodage de la partie adresse, qui repère les opérandes à traiter.

Les données sont représentées en mémoire en utilisant des codes (ASCII, DCB...) pour représenter les caractères. Les différences portent sur le nombre de bits utilisés et la disposition des séries de 0 et 1 pour un caractère donné.

Quelques langages : Fortran, destiné au calcul scientifique ; Algol ; Cobol, spécialisé pour la gestion, le traitement de fichiers, l’édition d’états ; APT III pour la commande numérique des machines-outils ; Basic, d’une grande simplicité d’apprentissage ; Pascal, fortement structuré très utilisé pour l’enseignement ; C, langage pour le développement de grands systèmes ; Prolog, premier langage de programmation en logique ; Ada à vocation universelle ; HTML, utilisé pour la description des pages Web ; Java, qui permet de créer des animations sur ces pages.

 

EXERCICES.

 

1. Dites, si les affirmations suivantes sont vraies ou fausses.

 

1. Le travail de chercheur consiste à découvrir les problèmes, les analyser et décomposer leur résolution en une suite d’instructions appelée programme de la machine.

2. Il existe deux grands modes d’utilisation d’un langage : la compilation et l’interprétation.

3. La mémoire de l’ordinateur ne contient que les données à traiter.

4. Les combinaisons de 0 et 1 sont identiques d’un code à l’autre.

5. Plusieurs méthodologies de programmation ont vu le jour, ayant pour objectif d’assurer une meilleure lisibilité, des techniques de preuve de la correction et une plus grande facilité de maintenance par découpage de module.

 

2. Complétez avec les éléments qui manquent.

Coder - numération binaire - s’étendre – bits – circuit électrique – code – sept chiffres - symboles.

 

Les ordinateurs travaillent avec seulement deux signes, le 0 et le 1, correspondant respectivement à la fermeture et à l’ouverture d’un ______ ______ . Ainsi notre numération décimale familière se traduit-elle en binaire, en ______ (« binary digit » ; toutes les lettres aussi : il suffit de créer un ______ à la manière dont les enfants rédigent des messages secrets. Plusieurs ont été inventés, tous fondés sur la ______ ______, mais la plupart des ordinateurs utilisent un code fondé sur des séquences de ______ ______, ce qui offre 128 combinaisons (27 = 128) : il s’agit de l’American Standard Code for Information Interchange (ASCII). S’il comprend majuscules et minuscules, chiffres et signes de ponctuation ainsi que divers ______ comme le $ (l’ASCII a été conçu par des Américains pour des Américains), ce code néglige en revanche les accents et il ignore les langues écrites en d’autres alphabets ou non alphabétiques. Mais le code peut ______ en montant à 16 bits (216 = 65 536 combinaisons possibles) et même 32 bits (232 = 4 294 967 296 combinaisons).

Unicode, avec des séquences de 16 bits, permet déjà de ______ en bits la plupart des langues de la planète.

 

3. Le tableau compare les codages de trois caractères : A majuscule, a minuscule et 0 (zéro). Quelle est la différence ?

codage DCB codage ASCII codage EBCDIC

A 0110001 0001100 11000001
A n’existe pas 0001110 10000001
0 1001010 0000011 11111000

 

 

4. Choisissez la bonne réponse.

 

1. Les langues / langages de programmation permettent d’écrire les programmes qui seront exécuter par la machine.

2. On distingue des niveaux de langages suivant leur degré d’indépendance / interdépendance par rapport à la machine utilisée.

3. Le jeu d’instructions dépend / diffère d’une machine à l’autre par la taille des mots utilisés, le nombre d’instructions, le nombre d’opérandes par instruction.

4. Tout programme devant cependant être implanté / imposé en mémoire sous forme de langage machine, on a inventé des langages s’éloignant du langage machine, mais traduisibles automatiquement.

5. Retrouvez la fin des phrases ci-dessous en vous inspirant du texte.

 

1. La programmation proprement dite consiste à …………

2. La capacité des ordinateurs à mémoriser à la fois les données à traiter et le traitement que l’on veut leur faire subir permet de …………

3. Les données sont représentées en mémoire …………

4. Il existe un grand nombre de langages, qui se différencient sur …………

6. Trouvez dans le texte ci-dessous quatre types de méthodologies de programmation et comparez-les.

 

Plusieurs méthodologies de programmation ont vu le jour, ayant pour objectif d’assurer une meilleure lisibilité, des techniques de preuve de la correction, et une plus grande facilité de maintenance par découpage en modules.

La programmation impérative fait appel à des primitives algorithmiques qui permettent de décrire de manière précise l’ensemble de traitements à appliquer aux différentes variables utilisées. Cette technique permet d’assurer une certaine normalisation de l’écriture, qui a une grande importance pour les phases de mise au point et de maintenance. Ce style de programmation a conduit à des langages comme Fortran, Cobol, Basic, Pascal ou Ada.

La programmation fonctionnelle est une technique de conception dirigée par les procédures. Les programmes sont des suites d’appels de procédures ou de fonctions agissant sur des données passées en paramètres. Ce mode de programmation fait appel à des langages offrant des opérateurs de haut niveau permettant de ne plus décrire en détail les traitements à réaliser sur les données (Lisp, APL).

La programmation logique s’intéresse au calcul sur des propositions logiques (ou prédicats). A partir de bases de règles et de faits, de nouveau faits sont déduits, qui permettent de vérifier ou d’invalider les propositions que l’on cherche à démontrer (Prolog).

La programmation par objets est une méthodologie dirigée par les données. Les objets sont des entités logiques composées à la fois de données et de méthodes (traitements, calculs) que l’on peut appliquer à ces objets. Les objets peuvent être regroupés en classes, qui, à son tour, peuvent être organisées en structures.