Environnement de programmation 1.La programmation Les ordinateurs sont stupides! à un point dont on n'a pas idée. Ils ne réagissent ni ne répondent qu'à des situations ou à des données anticipées par le programmeur. En fait, leur puissance ne tient pas à une quelconque intelligence, mais à leur vitesse. Un programmeur est un utilisateur un peu particulier. Il réalise des applications qui seront utilisées par d'autres utilisateurs. Les programmeurs débutants attendent souvent de l'ordinateur qu'il se montre astucieux, et sont évidemment frustrés quand il se révèle incapable de comprendre les commandes les plus simples. Ce n'est que lorsqu'ils réalisent sa stupidité qu'ils commencent vraiment à progresser. En fait, l'essentiel de la programmation consiste surtout à apprendre à penser de façon simpliste. a. Un programme, qu'est-ce que c est? Un programme informatique est une succession d'instructions exécutables par l'ordinateur. Un ordinateur exécute très exactement ce que le programme lui ordonne de faire, sans manifester ni imagination ni pondération. Il appartient au programmeur de s'abaisser à son niveau. La machine suivra toujours ses instructions à la lettre : elle ne sait pas faire autrement. La programmation est le processus par lequel on crée des programmes. L'ordinateur ne sachant manipuler que du binaire, c'est-à-dire une succession de 0 et de 1, il est nécessaire d'utiliser un langage de programmation avec lequel on peut écrire des instructions proches de notre langage, qui seront traduites dans un langage compréhensible par l'ordinateur. b. Les langages de programmation Les peuples communiquent au moyen de langages variés. Ces langages peuvent être écrits, lus, parlés, entendus et même signés. Il existe des langages spéciaux pour s'adresser à l'ordinateur, lequel ne peut comprendre les langages humains. Ces langages artificiels sont appelés langages de programmation. Comme il existe des tas de langages de programmation et qu'il faut en choisir un, notre choix s'est porté sur Visual Basic, qui est un langage simple mais suffisamment complet pour nous permettre de créer rapidement de petites applications graphiques. Microsoft fournit tout un environnement de programmation Visual Basic facilitant grandement la vie du programmeur. HEVs bet/sac Octobre 2001 Page 1/5
Les langages informatiques modernes utilisent des mots humains, suivent une grammaire, une syntaxe et une ponctuation, et se lisent parfois vaguement comme des langages naturels. L apprentissage d un langage de programmation est donc similaire à l apprentissage d une langue naturelle, car il faut apprendre: La syntaxe : comment écrit-on correctement? La sémantique : quel est le sens de ce que l'on écrit? Les différences principales avec un langage naturel sont: Le langage de programmation est beaucoup moins riche (moins de mots et de constructions syntaxiques). Le langage de programmation n'est absolument pas ambigu (chaque "phrase" a un seul et unique sens très précis, il n'y a pas d'interprétation possible). Syntaxe La syntaxe d'un langage de programmation décrit les formes correctes que peuvent prendre les programmes. La phrase suivante en français «Les chevals courent la prairie dans» est syntaxiquement incorrecte. Elle ne suit pas les règles d écriture. Toutefois un humain parlant le français arrive à corriger l erreur et à comprendre le sens de cette phrase. Par contre, un ordinateur n est pas capable de corriger les erreurs de syntaxe. Sémantique La sémantique correspond à la signification que peuvent prendre les différentes structures syntaxiques d'un langage. La phrase française suivante «Le repas a maintenant tourné contre l ascension» est syntaxiquement correcte (pas de faute de français), mais elle n a aucun sens, on dit que sa sémantique est incorrecte. Un programme sémantiquement incorrect va s exécuter mais qui «plante» en cours d exécution, ou ne s arrête plus, ou ne fournit pas le résultat voulu. c. Le travail du programmeur Tout programmeur commence avec une idée : tâche à accomplir ou problème à résoudre. Elle consiste à créer la séquence d'instructions à confier à la machine pour qu'elle exécute la tâche ou qu'elle résolve le problème. La première étape consiste à réfléchir à la façon dont on accomplirait la tâche soimême. Par exemple, comment pourrait-on vérifier l'orthographe de tous les mots d'un document? Il faudrait identifier tous les mots du texte et les comparer avec ceux d'un dictionnaire. Il serait impossible de programmer un ordinateur pour accomplir ce travail sans savoir comment l'accomplir soi-même. HEVs bet/sac Octobre 2001 Page 2/5
Quand on sait comment réaliser un travail soi-même, on peut concevoir le programme, c est-à-dire spécifier de manière formelle la marche à suivre pour accomplir la tâche. C est ce qu on appelle un algorithme. On peut voir l algorithme comme une recette de cuisine qui décrit la suite d opérations que l ordinateur doit effectuer. Exemple L algorithme (simplifié) de vérification orthographique peut être le suivant : - identifier les mots du texte - chercher chaque mot dans le dictionnaire Pour obtenir des programmes de qualité, il est nécessaire de prendre du temps pour les concevoir avant de les réaliser. Tout comme un architecte prend le temps d'établir des plans et de discuter avec le client de sa future maison. Une fois la conception terminée, on peut commencer à écrire le code, en n'oubliant pas d'y placer des commentaires explicatifs. Une fois le codage terminé, on peut tester son programme pour y dénicher d éventuelles erreurs d exécution, que l on appelle bogue (bug). Le débogage est un travail de détective qui consiste à trouver les erreurs dans le code et à les corriger. La séquence conception, codage, test et débogage paraît saine en théorie. Cependant, dans la pratique, le développement logiciel n'est pas toujours aussi simple. Il arrive fréquemment que l'écriture du code ou les résultats des tests amènent à modifier le dessin du programme. A mesure que le programme prend forme, on découvre que telle fonction qui paraissait intéressante ne donne pas le résultat escompté et qu'on a une meilleure idée pour la remplacer. Il arrive aussi que l'on soit amené à recoder une partie du programme pour en améliorer les performances. Pseudo-code Dans ce cours, les programmes que vous allez construire étant simples, la partie conception ne sera en fait qu'une réflexion. Réflexion qui aboutira à un pseudo-code. Un pseudo-code est un algorithme écrit en langage courant très simplifié permettant sa traduction aisée et sans ambiguïté dans un langage de programmation quelconque. Exemple Le pseudo-code de l algorithme ci-dessus est le suivant : Identifier les mots du texte POUR chaque mot identifé FAIRE chercher le mot dans le dictionnaire FIN FAIRE HEVs bet/sac Octobre 2001 Page 3/5
2.Les outils du programmeur Un programmeur est également utilisateur d'applications, mais il s intéresse essentiellement aux applications qui lui permettent de réaliser les siennes, c est ce qu il appelle: les outils. Les principaux outils utilisés par le programmeur sont des éditeurs, des compilateurs et des débogueurs. De nos jours tous ces outils sont souvent intégrés dans une même application comme par exemple : Visual Basic, CodeWarrior, Visual C++, Delphi. a. Les éditeurs Les éditeurs ressemblent à des traitements de texte tels que Word, Wordpad, Notepad, etc.). Tout comme eux, ils permettent d'écrire du texte, mais comme ils servent à écrire du code (des lignes dans un certain langage de programmation), ces fonctionnalités des éditeurs sont en partie différentes de celles d'un traitement de texte. Si pour un traitement de texte, on souhaite pouvoir effectuer de la mise en page (marges, en-tête et pied de page, paragraphes, sections, etc.), de la présentation (polices, couleur, etc.), ces fonctionnalités ne sont pas utiles à la programmation, elles troubleraient plutôt le programmeur en le laissant s'égarer dans la présentation de son code. Les fonctionnalités d'un éditeur de code sont: Mise en évidence des mots réservés du langage. Eléments facilitant l'écriture de code avec une syntaxe correcte. Possibilité de regrouper les fichiers de code en projets. Possibilité de compiler, déboguer et exécuter directement depuis l'éditeur. b. Les interpréteurs et compilateurs Un langage informatique est par définition différent du langage machine. Il faut donc le traduire pour le rendre intelligible du point de vue du processeur. Les interpréteurs traduisent au fur et à mesure les instructions du programme, alors que les compilateurs traduisent une fois pour toutes l'ensemble des lignes du programme. Le fichier généré sera autonome, c'est-à-dire qui n'aura pas besoin d'un autre programme pour s'exécuter. On dit d'ailleurs que ce fichier est exécutable ou est un exécutable. Les différents langages de programmation peuvent être soit compilés (Pascal, C, C++, etc.), soit interprétés (Basic, Java, etc.). Un programme compilé a comme avantage de ne plus avoir besoin de programme annexe pour s'exécuter. De plus, la traduction étant faite une fois pour toute, il est plus rapide à l'exécution. Toutefois il est moins souple qu'un programme interprété car à chaque modification du code source, il faudra recompiler le programme pour que les modifications prennent effet. HEVs bet/sac Octobre 2001 Page 4/5
c. Les débogueurs Les débogueurs aident le programmeur à trouver les erreurs dans son programme en lui permettant d'exécuter son programme pas à pas ou de l'interrompre avec des points d'interruption (breakpoints), de visualiser les données utilisées après l'exécution de chaque instruction, de contrôler le déroulement du programme et ainsi de détecter l'endroit de l'erreur. d. Les librairies Les librairies sont des parties de codes et d'exécutables stockés sur la machine qui peuvent être utilisés par plusieurs programmes. HEVs bet/sac Octobre 2001 Page 5/5