Skip to content

Outils du programmeur

29 novembre 2012

Pour faire de la programmation en TP (ou à la maison), nous avons besoin d’écrire des programmes, les compiler et les exécuter.

Éditeurs de texte

Pour écrire, on peut utiliser un éditeur de texte, c’est-à-dire un programme qui permet de créer et d’éditer des fichiers de type texte simple. On évitera les programmes de traitement de texte (Writer ou Word par exemple) car ils sont faits pour écrire du texte formaté (avec du gras, du souligné, de l’italique, des polices de caractères, des puces, des réglages de l’interligne, des marges, des retraits,…) même si on peut toujours demander à ces programmes d’enregistrer sous le format texte simple

Les plus simples, de type « bloc-notes », ne permettent souvent que de faire les opérations de base : enregistrer, ouvrir, couper, copier, coller. Ils ont l’avantage d’être disponibles sous tous les systèmes d’exploitation.

En mode texte, j’utilise souvent l’éditeur nano. En mode graphique fenêtré, on peut citer gedit (l’éditeur de GNOME), KWrite (celui de KDE), mais il en existe beaucoup d’autres. Ceux-ci ont tous une option intéressante : la coloration syntaxique, qui détecte les mots-clés du langage, les chaînes de caractères, les nombres, les commentaires, etc. et leur donne des couleurs différentes pour bien les distinguer. Cela permet souvent de détecter les erreurs (un mot-clé mal écrit ne change pas de couleur, un guillemet fermant oublié colore toute la ligne…). Souvent le langage est déterminé par l’extension du fichier et il faut donc enregistrer au moins une fois son programme (avec la bonne extension) pour que la coloration s’active.

Les programmeurs professionnels utilisent souvent des éditeurs très sophistiqués. Parmi les plus connus, je citerai vi et Emacs. vi (prononcer « vi-aille« ) est l’éditeur historique de Unix, Emacs est celui de GNU. Ils ont évolué depuis toutes ces années et sont devenus de vraies boîtes à outils. Ils sont plus difficiles à utiliser pour les débutants mais une fois maîtrisés, leur puissance facilite beaucoup la tâche aux programmeurs.

N’oubliez pas quand vous enregistrez votre fichier de lui donner un nom qui se termine par la bonne extension en minuscules : .pas pour le Pascal, .c pour le C, .cpp pour le C++, .java pour le Java, etc.

Le compilateur risque de ne pas savoir compiler votre programme si vous mettez une mauvaise extension ou si vous l’oubliez (par exemple, gcc vous donnera des erreurs bizarres si vous donnez l’extension .C majuscule à votre fichier car il le traitera comme du C++ particulier).

Évitez aussi les espaces dans vos noms de fichiers sinon vous risquerez d’être obligés de les entourer de guillemets pour les passer à l’éditeur ou au compilateur. Les espaces servent à séparer les paramètres dans une commande. gedit hadj moussa.c va ouvrir deux fichiers : le fichier hadj et le fichier moussa.c (il faudra faire gedit "hadj moussa.c" à la place).

Compilation

Avant d’exécuter son programme, on utilise un compilateur, un programme spécial qui traduit le texte de notre programme source du langage de programmation (Pascal, C, etc.) que nous les humains comprenons en langage machine (binaire) que l’ordinateur peut comprendre et exécuter. On obtient un fichier binaire exécutable.

Compilateurs Pascal

Le meilleur compilateur Pascal actuellement est celui de Free Pascal. Il existe sur de nombreuses plateformes et c’est bien sûr un logiciel libre. Il est compatible avec les anciens programmes de Turbo Pascal.

Il s’utilise :

– soit en ligne de commande en tapant :

fpc programme.pas

ce qui permet d’obtenir (s’il n’y a pas d’erreurs) le fichier exécutable programme

– soit avec l’EDI fourni avec, qui ressemble à l’interface de Turbo Pascal sous DOS, avec la commande fp

Remarque : Pour faire des programmes en mode graphique fenêtré, une extension de Free Pascal, Lazarus, permet d’obtenir un outil RAD qui ressemble beaucoup à Delphi. Il a également l’avantage d’être multiplateforme (Write Once, Compile Anywhere).

Compilateurs C

Le plus répandu des compilateurs C actuels est l’un des premiers programmes (développé à l’origine par Richard Stallman en 1987) du système d’exploitation GNU, d’où son nom : GCC qui à l’origine voulait dire GNU C Compiler mais est devenu GNU Compiler Collection quand on lui ajouta les langages C++, Fortran, Ada, Java, etc. Il est actuellement disponible sur presque toutes les plateformes (systèmes d’exploitation et processeurs).

Son utilisation en ligne de commande permet de nombreuses options. Je vous conseille de l’utiliser ainsi :

gcc programme.c -o programme -Wall -g -std=c99

  • programme.c est votre fichier source (vérifiez bien qu’il n’a pas d’espaces dans son nom, sinon entourez-le de guillemets, et qu’il a l’extension .c en minuscule).
  • L’option -o indique que vous voulez que le fichier binaire exécutable s’appelle programme. Elle n’est pas obligatoire : si vous ne donnez pas de nom a l’exécutable, il s’appellera par défaut a.out (ce qui n’est pas toujours pratique). Attention : ne mettez pas le nom du fichier source (programme.c) après -o sinon le compilateur l’écrasera en donnant son nom à l’exécutable ! (J’ai déjà vu des étudiants perdre leur programme source comme ça…)
  • L’option -Wall (avec un W majuscule) indique que vous voulez que le compilateur vous avertisse pour toutes les bizarreries qu’il trouvera dans votre code source (du genre if (a=0) ... qui n’est pas une erreur pour le compilateur mais ne fait pas ce que vous voulez).
  • L’option -g demande au compilateur d’ajouter dans votre fichier compilé des informations supplémentaires utiles pour détecter certaines erreurs. Par exemple, grâce à cette option, si vous écrivez Printf au lieu de printf, le message donné par le compilateur (au moment de l’édition de liens) contiendra le numéro de la ligne où se trouve l’erreur, ce qui est pratique pour la corriger rapidement. Elle a un inconvénient : elle rend le programme exécutable plus gros et plus lent. Pour optimiser celui-ci, il suffit de le recompiler sans cette option une fois qu’on a corrigé toutes les erreurs.
  • L’option -std=c99 vous permet d’utiliser les nouvelles fonctionnalités de la norme de 1999, comme for (int i=0 ; ... qui n’est pas autorisé dans l’ancienne norme de 1990.

Compilateurs en ligne

Vous êtes en vacances chez votre grande tante et vous n’avez pas votre ordinateur sous la main. Vous vous rappelez d’une astuce de programmation que vous vouliez essayer. Au lieu de télécharger et installer un compilateur sur l’ordi de votre tante (qui ne l’utilise que pour discuter avec sa fille au Canada), vous ouvrez simplement l’un des sites suivants :

puis vous y tapez votre programme, le compilez et l’exécutez sur le serveur du site !

Remarque : onlinecompiler.net compile mais n’exécute pas, il faut télécharger l’exécutable et le faire tourner sur votre ordi.

Il existe même des applications mobiles (pour Android) qui permettent de compiler avec sourcelair.com et ideone.com, si votre téléphone est connecté à internet.

Il existe d’autres sites dans ce genre, pour différents langages de programmation. Voir par exemple la liste donnée ici

Exécution

Notre compilateur nous a fourni un programme binaire exécutable, comment allons-nous l’exécuter ?

C’est le système d’exploitation qui s’occupe de cette tâche. Pour lui demander d’exécuter un programme, il suffit de taper en ligne de commande le nom du fichier exécutable, tout simplement. MAIS dans les systèmes de la famille Unix (comme GNU/Linux), il faut préciser aussi le chemin du fichier. Si votre programme s’appelle tp42 et que vous l’avez compilé dans le répertoire /home/omar/tp, une manière de l’exécuter est de taper :

/home/omar/tp/tp42

Cela lancera l’exécution du programme quel que soit le répertoire courant (dans lequel vous vous trouvez actuellement).

Cependant, si vous venez de le compiler, alors votre répertoire courant est peut-être /home/omar/tp ? si c’est le cas, il suffit donc de taper :

./tp42

puisque pour l’interpréteur de commandes le point « . » signifie « répertoire courant ». De même, si vous êtes dans le répertoire /home/omar, alors vous pourrez taper :

tp/tp42

Si vous êtes dans le répertoire /home/omar/tp/chimie, vous pourrez exécuter le programme en tapant :

../tp42

puisque « .. » signifie « répertoire parent » (comme dans cd ..).

Remarque : comment se fait-il que pour exécuter kwrite, gcc, ou mkdir on n’ait pas besoin d’ajouter le chemin avant ? C’est parce que le répertoire dans lequel ces programmes se trouvent (pour gcc c’est /usr/bin et pour mkdir c’est /bin) se trouvent dans une liste contenue dans la variable d’environnement du système PATH.

Environnements de développement intégrés (EDI)

Un EDI est un programme qui permet de regrouper les opérations d’édition, de compilation, de débogage (recherche des erreurs) et d’autres outils ainsi que de l’aide en un seul outil intégré. En fait, ce qui se passe souvent c’est que le programme utilise d’autres outils en les appelant à notre place.

Certains programmeurs préfèrent utiliser un EDI car cela facilite leur tâche, mais beaucoup aiment mieux contrôler ce qui se passe et par exemple, ils préfèrent appeler eux-même GCC plutôt que de laisser l’EDI le faire.

Tiens, ça me rappelle un strip de xkcd :

Voici une liste de quelques EDI pour la programmation en C par exemple :

  • Code::Blocks : multiplateforme (GNU/Linux, Windows, Mac…) et très utilisé.
  • CodeLite : ressemble un peu à Code::Blocks, mais en plus léger (multiplateforme aussi)
  • Eclipse : Beaucoup plus lourd mais très intéressant, surtout si vous voulez faire du Java plus tard.
  • Dev-C++ : Bien fait, simple, mais ne fonctionne que sous Windows (attention n’utilisez pas la version 4.9.9.2 qui est très ancienne et a de gros bugs).
  • Geany : C’est l’un de mes préférés. Vraiment très léger et pratique (surtout sous GNU/Linux, mais fonctionne sur les autres plateformes). C’est plus un éditeur de texte qu’un vrai EDI complet, mais il permet de compiler d’un clic lui aussi.
  • etc.
Publicités

From → Programmation

One Comment
  1. il ya un bon EDI multiplatformes Linux/Win/MacOS c’est le codeblocks il utilise le GCC comme compilateur. :)

    J'aime

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

%d blogueurs aiment cette page :