Mohamed El Marraki ____________________________________________________________

Mohamed El Marraki _________________________________________________________________________________________________________________ Le Langage de programmation Maple 1 Université Mohammed V-Agdal Faculté des Sciences Rabat Département Mathématiques et Informatique Le module I2 : SMP-SMC, SM-SMI Faculté des Sciences Le Langage de programmation Maple Par Mohamed El Marraki 2006/2007 Mohamed El Marraki _________________________________________________________________________________________________________________ Le Langage de programmation Maple 2 1. Introduction L’informatique est la science du traitement automatique de l’information. Pour cela : 1. il faut modéliser cette information, 2. définir à l’aide d’un formalisme strict les traitements dont elle fera l’objet, 3. traduire ces traitements dans un langage compréhensible par un ordinateur. Les deux points 1 et 2 précédents relèvent de l’algorithmique. Le 3ème point concerne ce que l’on nomme la programmation. 1.1 L’algorithmique L’algorithmique est un terme d’origine arabe, hommage à Al Khawarizmi  Une recette de cuisine est un algorithme!  Le mode d’emploi d’un magnétoscope est aussi un algorithme!  indiqué un chemin à un touriste égaré ou faire chercher un objet à quelqu’un par téléphone c’est fabriquer – et faire exécuter – des algorithmes. Un algorithme, c’est une suite d’instructions, qui une fois exécutée correctement, conduit à un résultat donné.  Si l’algorithme est juste, le résultat est le résultat voulu, et le touriste se retrouve là où il voulait aller.  Si l’algorithme est faux, le résultat est, disons, aléatoire, et décidément, ce magnétoscope ne marche pas!! Pour fonctionner, un algorithme doit donc contenir uniquement des instructions compréhensibles par l’ordinateur. Remarque : L’ADN, qui est en quelque sorte le programme génétique, l’algorithme à la base de construction des êtres vivants, est une chaîne construite à partir de quatre éléments invariables. Ce n’est que le nombre de ces éléments, et l’ordre dans lequel ils sont arrangés, qui vont déterminer si on obtient une puce ou un éléphant. Les ordinateurs eux-mêmes ne sont fondamentalement capables d’exécuter que quatre opérations logiques : o l’affectation de variables o la lecture / écriture o les tests o les boucles Un algorithme informatique se ramène donc toujours au bout du compte à la combinaison de ces quatre petites briques de base. Il peut y en avoir quelques unes, quelques dizaines, et jusqu’à plusieurs centaines de milliers dans certains programmes. La taille d’un algorithme ne conditionne pas en soi sa complexité : de longs algorithmes peuvent être finalement assez simples, et de petits algorithmes peuvent être très compliqués. 1.2 La programmation Un ordinateur est une machine construite pour exécuter de manière séquentielle des fonctions primitives telles que les calculs arithmétique, les affectations de variables, des testes, des boucles des entrée-sortie, etc. On obtient des traitements plus complexes (comme l’extraction Mohamed El Marraki _________________________________________________________________________________________________________________ Le Langage de programmation Maple 3 d’une racine carrée par exemple) en combinant ces opérations entre elles dans un ordre convenable. Comme la vitesse de l’ordinateur est très grande, il n’est pas possible de lui donner des ordres au fur et à mesure de l’avancement du travail, comme on le fait avec une calculette : il faut d’abord dresser la liste des instructions auxquelles la machine devra obéir, dans l’ordre de leur exécution. C’est ce qu’on appelle un programme. On charge ensuite ce programme dans la mémoire de la machine, où elle puisera les instructions au fur et à mesure de leur exécution, à sa propre vitesse. Un programme est la traduction d’un algorithme dans un langage de programmation. La première difficulté sera d’adapter notre raisonnement humain à la logique de fonctionnement de l’ordinateur. Il faudra être suffisamment précis pour que la machine puisse exécuter la tâche. Exemple : on veut échanger le contenu de deux cellules mémoires qu’on appellera A et B. La première idée qui consiste à dire "je mets le contenu de A dans B et celui de B dans A" aboutirai à ce que A et B contiendraient les mêmes valeurs, ce n’est pas le résultat souhaité. Le problème est donc un peu plus complexe puisqu’il il faut d’abord sauvegarder le contenu de B dans une cellule C, recopier le contenu de A dans celui de B puis restaurer le contenu de C dans la cellule A. 1.3 Les langages programmation On classe les langages de programmation en "générations". La première génération regroupe les langages machine, le seconde les langages d’assemblages et la troisième les langages évolués. 1.3.1 Les langages de bas niveau Le langage machine : Les instructions stockées dans la mémoire de l’ordinateur sont représentées sous la forme de chaînes de chiffres binaires, elles sont exécutées par l’unité de traitement. On dit qu’elles sont exprimées en langage machine. Le langage machine constitue le seul langage réellement "compris" par l’ordinateur. Exemple : 0 1 0 1 1 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 1 o Le premier octet (8 bits) signifie le nombre 90 = 5A16 (hexadécimal) qui est le code opératoire de l’addition à un registre, o les quatre bits suivants signifient le nombre 3 qui est le numéro de registre, o les 20 bits restant signifient 517 = 20516 (hexadécimal) qui l’adresse de l’opérande. Cette instruction en langage machine signifie "additionner au contenu du registre 3 le contenu du mot d’adresse 517". Cette programmation, lente et fastidieuse, était source de nombreuses erreurs. Elle n’est utilisée aujourd’hui que dans quelques cas bien particuliers. Mohamed El Marraki _________________________________________________________________________________________________________________ Le Langage de programmation Maple 4 Les langages d’assemblage ont permis l’écriture des instructions du langage machine sous forme symbolique ; la traduction en binaire est assurée par un programme, fourni par le constructeur, appelé assembleur. Les langages d’assemblage sont des langages de programmation les plus proche du langage machine, où chaque instruction correspond à une instruction machine unique. Toutefois un tel langage est tellement proche du langage machine qu'il dépend étroitement du type de processeur utilisé (chaque type de processeur peut avoir son propre langage machine). Ainsi un programme développé pour une machine ne pourra pas être porté sur un autre type de machine (on désigne par le terme "portable" un programme qui peut être utilisé sur un grand nombre de machines). Pour pouvoir l'utiliser sur une autre machine il faudra alors parfois réécrire entièrement le programme! Bien qu’ils introduisent certains allégements ils ne résolvent pas le problème de portabilité (un programme écrit sur une machine ne marche pas sur une autre machine, le programme dépend du processeur). Cependant les langages d’assemblage sont encore utilisés aujourd’hui dans quelques cas : o Quand la vitesse d’exécution est primordiale, o Pour accéder directement à certains périphériques, o Pour étudier les différentes types d’architecture des ordinateurs. Pour remédier aux inconvénients des langages d’assemblage, on a crée des langages dites évolués, écrits avec l’alphabet usuel proche du langage humain. 1.3.2 Les langages de haut niveau L'assembleur est le premier langage informatique qui ait été utilisé. Celui-ci est encore très proche du langage machine mais il permet déjà d'être plus compréhensible. Toutefois un tel langage est tellement proche du langage machine qu'il dépend étroitement du type de processeur utilisé (chaque type de processeur peut avoir son propre langage machine). Ainsi un programme développé pour une machine ne pourra pas être porté sur un autre type de machine (on désigne par le terme "portable" un programme qui peut être utilisé sur un grand nombre de machines). Pour pouvoir l'utiliser sur une autre machine il faudra alors parfois réécrire entièrement le programme! Un langage informatique a donc plusieurs avantages: o il est plus facilement compréhensible que le langage machine o il permet une plus grande portabilité, c'est-à-dire une plus grande facilité d'adaptation sur des machines de types différents Un langage de haut niveau sert nous épargner la programmation en binaire. C’est pourquoi tout langage, à partir d’un programme écrit, doit obligatoirement procéder à une traduction en langage machine pour que ce programme soit exécutable. Il existe deux stratégies de traduction, ces deux stratégies étant parfois disponibles au sein du même langage. Le langage traduit les instructions au fur et à mesure qu’elles se présentent. Cela s’appelle la compilation à la volée, ou l’interprétation. Le langage commence par traduire l’ensemble du programme en langage machine, constituant ainsi un deuxième programme (un deuxième fichier) distinct physiquement et logiquement du premier. Ensuite, et ensuite seulement, il exécute ce second programme. Cela s’appelle la compilation. Mohamed El Marraki _________________________________________________________________________________________________________________ Le Langage de programmation Maple 5 Il va de soi qu’un langage interprété est plus maniable : on peut exécuter directement son code au fur et à mesure qu’on le tape, sans passer à chaque fois par l’étape supplémentaire de la compilation. Mais il va aussi de soi qu’un programme compilé s’exécute beaucoup plus rapidement qu’un programme interprété : le gain est couramment d’un facteur 10, voire 20 ou plus. Toute application destinée à un usage professionnel (logiciel par exemple) est forcément une application compilée. Quelques exemples de langages couramment utilisés Langage Domaine d'application principal Compilé / interprété MAPLE Calcul mathématique langage interprété MATLAB Calcul mathématique langage interprété Mathematica Calcul mathématique langage interprété BASIC Comme son nom l'indique... langage interprété Prolog Intelligence artificielle langage interprété uploads/Industriel/ maple.pdf

  • 17
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager