Manuel de mise en forme de code C/C++ Al Dev (Alavoor Vasudevan) <alavoor@yahoo

Manuel de mise en forme de code C/C++ Al Dev (Alavoor Vasudevan) <alavoor@yahoo.com> Traduction fran¸ caise de Robert Jacolin <rjacolin@yahoo.fr> Relecture de Christophe Fergeau <christophe.fergeau@ensimag.imag.fr> V 6.0, 1 aoˆ ut 2000 Ce document vous aidera ` a mettre en forme (embellir) des programmes C/C++ pour qu’ils soient plus lisibles et conformes ` a vos standards de codage C/C++. Les informations pr´ esentes dans ce document s’appliquent ` a tous les syst` emes d’exploitation existants - les syst` emes d’exploitation GNU/Linux, MS DOS, Windows 95/NT, OS/2, IBM, tous les clones Unix comme Solaris, HPUX, AIX, SCO, Sinix, BSD, SCO, etc ... - et ` a tous les autres syst` emes d’exploitation qui poss` edent un compilateur ”C” (ce qui veut dire presque tous les syst` emes d’exploitation de cette plan` ete!). Contents 1 Introduction 1 2 Comment avoir confiance en un programme de mise en forme ??!! 2 3 Embellisseurs pour d’autres langages 3 4 Script de v´ erification 4 5 Des urls sur ce sujet 5 6 Autres formats de ce document 6 7 Droits d’auteurs 8 1 Introduction Les standards de codage pour le C/C++ ou d’autres langages sont utilis´ es dans le but de rendre les pro- grammes plus lisibles/compr´ ehensibles par les programmeurs. Pour cela, il existe des embellisseurs C/C++ (outils de formatage). Le code format´ e (embelli) augmente la productivit´ e des programmeurs de 100%!! Sur GNU/Linux/Unix, il existe des commandes appel´ ees ”indent” et ”cb”. R´ ef´ erez-vous aux pages de manuel par ’man indent’ et ’man cb’. Notez que indent et cb fonctionnent uniquement pour les programmes ”C”. Pour les programmes ”C++”, utilisez ”bcpp”. T´ el´ echargez ce programme de mise en forme ` a partir des sites suivants : • C++ : le site de BCPP est ` a l’adresse <http://dickey.his.com/bcpp/bcpp.html> ou sur <http://www.clark.net/pub/dickey> • C++ : le site ftp de BCPP est ` a l’adresse <ftp://dickey.his.com/bcpp/bcpp.tar.gz> 2. Comment avoir confiance en un programme de mise en forme ??!! 2 • C++ : <http://www.consultix-inc.com/c++b.html> • C : <http://www.chips.navy.mil/oasys/c/> J’ai utilis´ e BCPP pour formater les programmes C++ et il m’a parfaitement convenu. Vous pr´ ef´ ererez peut-ˆ etre essayer d’autres outils et utiliser celui que vous appr´ ecierez le plus. BCPP a ´ et´ e ´ ecrit par Steven De Toni 2 Comment avoir confiance en un programme de mise en forme ??!! Pour ˆ etre sur ` a 100%, vous devez utiliser une approche SCIENTIFIQUE pour valider et avoir confiance en un programme de mise en forme. La m´ ethode d´ ecrite dans cette section permettra au programme de mise en forme d’ˆ etre agr´ e´ e comme ´ etant ”vraiment fiable” et s´ erieux. Dans le but de v´ erifier qu’un programme de mise en forme comme bcpp, indent ou cb ne provoque pas de dommage ou ne change pas le code source d’entr´ ee apr` es formatage, vous pouvez utiliser le script shell 4 (Programme de v´ erification) ou utiliser la technique suivante : G´ en´ erez le code objet ` a partir du code source original en utilisant le compilateur : g++ -c monprogramme.cpp Ici g++ est le compilateur C++ GNU. Le code objet monprogramme.o sera g´ en´ er´ e Sauvez ce fichier : mv monprogramme.o monprogramme_orig.o Maintenant, lancez bcpp : bcpp monprogramme.cpp Le fichier contenant le programme format´ e monprogramme.cpp sera g´ en´ er´ e et le fichier initial sera d´ eplac´ e dans monprogramme.cpp.orig. Compilez le nouveau fichier : g++ -c monprogramme.cpp Maintenant utilisez la commande unix ’diff’ pour comparer les 2 fichiers objets : diff monprogramme.o monprogramme_orig.o Les deux fichiers DOIVENT ˆ ETRE IDENTIQUES. Cette commande v´ erifie que bcpp fonctionne par- faitement. Sous DOS ou sous Windows 95, vous devrez utiliser les utilitaires ’diff’ ou ’MKS’ de Cygwin fournis sur le site de Cygnus <http://www.cygnus.com> . De plus, vous pouvez utiliser la sortie en assembleur ` a la place de la sortie objet du compilateur. En faisant : g++ -S monprogramme.cpp 3. Embellisseurs pour d’autres langages 3 monprogramme.s sera cr´ e´ e. V´ erifiez-le avec : diff monprogramme.s monprogramme_orig.s Cette ´ etape vous garantit ` a 100% que votre pr´ ecieux code source reste intact et que bcpp fait UNIQUEMENT du formatage et NE change PAS ou n’endommage pas votre code de quelque mani` ere que ce soit. Cette m´ ethode vous assure ` a 100 % de sa qualit´ e et une GARANTIE ` a vie ou ` a long terme pour ces programmes de mise en forme comme ’bcpp’, ’cb’ ou ’indent’. Il est fortement recommand´ e de faire ces deux ´ etapes chaque fois que vous lancerez un programme de mise en forme comme bcpp, indent ou cb. 3 Embellisseurs pour d’autres langages Visitez les sites suivants pour obtenir des embellisseurs pour d’autres langages comme HTML, SQL, Java, Perl, Fortran. • HTML : <http://www.digital-mines.com/htb/> • HTML : <http://www.datacomm.ch/mwoog/software/perl/beautifier.html> • HTML : <http://www.watson-net.com/free/perl/s_fhtml.asp> • SQL : <http://www.netbula.com/products/sqlb> • Java : <http://home.wtal.de/software-solutions/jindent/frameset.html> • Java JPretty : <http://www.mmsindia.com/index.html> • Perl : <http://www.consultix-inc.com/www.consultix-inc.com/talk.htm> • Perl : <http://www.consultix-inc.com/www.consultix-inc.com/perl_beautifier.html> • Embellisseur Fortran : <http://www.aeem.iastate.edu/Fortran/tools.html> • C++ : Le site de BCPP est ` a l’adresse <http://www.clark.net/pub/dickey/bcpp/bcpp.html> • C++ : <http://www.consultix-inc.com/www.consultix-inc.com/c++b.html> • C : <http://www.chips.navy.mil/oasys/c/> • Livre blanc sur les embellisseurs : <http://www.consultix-inc.com/www.consultix-inc.com/ talk.htm> Pour pr´ esenter du code sous format HTML : • Pr´ esentation (C, C++, Java) en html : <http://www.perlstudio.de/cbindex.html> Recherchez aussi dans les moteurs de recherches comme <http://www.yahoo.com> ou <http://www.lycos.com> et cherchez avec le mot-cl´ e ”embellisseur” (ou ”beautifier” pour le terme anglais, NDT). 4. Script de v´ erification 4 4 Script de v´ erification Ceci est un script pour le shell Korn pour v´ erifier les programmes de mise en forme. Il a besoin de ”pd- ksh*.rpm” ` a partir du cdrom ’contrib’ de Linux. Sauvez ce fichier en tant que fichier ’texte’ et appliquez sur ce fichier la commande chmod a+rx. Vous pouvez r´ e´ ecrire ce script shell en Perl pour pouvoir l’utiliser sous Windows 95/NT ou MSDOS. Enlevez les commentaires de la variable PRGM pour le faire pointer sur bcpp, cb ou indent. #!/bin/ksh # Programme de v´ erification pour contr^ oler des embellisseurs C++ comme ’bcpp’, ’indent’ ou ’cb’ ############################################################ # Copyright # Les droits d’auteurs sont sous les termes de la GNU/GPL. # Auteur: Al Dev (Alavoor Vasudevan) alavoor@yahoo.com # Traducteur : Robert Jacolin rjacolin@yahoo.fr ############################################################ check_beautify_now() { # Efface tous les fichiers temporaires ... \rm -f ${TMP_FILE} \rm -f ${TMP_CPPFILE}*.* FNAME=$1 if [ ! -f ${FNAME} ]; then print "\nErreur : Le fichier ${FNAME} n’existe pas!!. Arr^ et imm´ ediat ...." exit fi \cp -f ${FNAME} ${TMP_CPPFILE}.cpp ${COMPILER} -c ${TMP_CPPFILE}.cpp if [ ! -f ${TMP_CPPFILE}.o ]; then print "Erreur Fatale : Impossible de compiler ${FNAME}. Arr^ et imm´ ediat ... " exit fi \mv -f ${TMP_CPPFILE}.o ${TMP_CPPFILE}_orig.o aa=‘basename $PRGM‘ print "\nEn cours, v´ erification de $aa sur ${FNAME}" ${PRGM} ${TMP_CPPFILE}.cpp ${COMPILER} -c ${TMP_CPPFILE}.cpp \rm -f $TMP_FILE diff ${TMP_CPPFILE}.o ${TMP_CPPFILE}_orig.o 1> $TMP_FILE 2>> $TMP_FILE result="" result=‘wc -c $TMP_FILE | awk ’{print $1}’ ‘ if [ "$result" = "0" ]; then print "Succ´ es!! La mise en forme de $aa fonctionne proprement!!\n" else print "Erreur Fatale : Quelque chose ne va pas!! La mise en forme ne fonctionne pas! exit 5. Des urls sur ce sujet 5 fi # ${COMPILER} -S ${TMP_CPPFILE}.cpp # diff ${TMP_CPPFILE}.s ${TMP_CPPFILE}_orig.s # Efface tous les fichiers temporaires .... \rm -f ${TMP_FILE} \rm -f ${TMP_CPPFILE}*.* } ########## La partie principale du programme commence ici ################## #PRGM=/usr/bin/bcpp #PRGM=/usr/bin/cb PRGM=/usr/bin/indent COMPILER=/usr/bin/g++ TMP_FILE=beautify.tmp TMP_CPPFILE=beautify-tmp_cppfile print -n "Entrez le nom du fichier C++ <valeur par d´ efaut *.cpp> : " read ans if [ "$ans" = "" -o "$ans" = " " ]; then ans="ALL" else FILENAME=$ans fi # Efface tous les fichiers temporaires .... \rm -f ${TMP_FILE} \rm -f ${TMP_CPPFILE}*.* if [ "$ans" != "ALL" ]; then check_beautify_now ${FILENAME} else ls *.cpp | while read FILENAME do check_beautify_now ${FILENAME} done fi 5 Des urls sur ce sujet Visitez les sites suivants en rapport avec le C, C++ : • Editeur de texte en couleur Vim pour C++, C <http://metalab.unc.edu/LDP/HOWTO/Vim-HOWTO. html> • Le manuel de programmation C++ <http://metalab.unc.edu/LDP/HOWTO/C++Programming-HOWTO. html> 6. Autres formats de ce document 6 • Le manuel de CVS pour les programmes C++ <http://metalab.unc.edu/LDP/HOWTO/CVS-HOWTO. html> • Site principal de gˆ ateries pour Linux sur <http://www.aldev.8m.com> • Site miroir de gˆ ateries pour Linux sur <http://aldev.webjump.com> 6 Autres formats de ce document Ce document est publi´ e dans 11 formats diff´ erents qui ont pour noms : DVI, Postscript, Latex, Adobe Acrobat PDF, LyX, GNU-info, HTML, RTF (Rich Text Format : Format de texte enrichi), texte simple, pages de manuel Unix et SGML. • Vous pouvez obtenir ce document comme une simple archive tar de fichiers HTML, DVI, Postscript ou SGML (en anglais, NDT) sur <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO/other-formats/> • Le format texte est sur : <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO> • Des traductions dans d’autres langues comme le fran¸ cais, l’allemand, l’espagnol, le chinois, le japonais sont disponibles sur <ftp://sunsite.unc.edu/pub/Linux/docs/HOWTO> . Toute aide que vous pouvez apporter pour des traductions dans d’autres langues est la bienvenue. Le document a ´ et´ e ´ ecrit en uploads/s3/ 2000-manuel-de-mise-en-forme-de-code-c-c-dev-et-al.pdf

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