précédent
index
suivant
4. Outils, environnement de développement et autres gadgets
Note :
Cette section a du mal à vivre sans l'aide des
lecteurs. Par soucis d'équité et pour limiter un peu le volume
d'informations, on s'en tient aux logiciels, programmes, codes,
etc. libres, gratuits ou du domaine public.
4.1 Environnements de développement intégrés
Apple :
Sur MacOS, MPW combiné avec le terrible
MacsBug
vous donneront entière satisfaction.
Unix :
Sur Unix-like, vi[m] et
[x]emacs, combinés avec make, GNU
CC et GNU DB forment un environnement de
développement intégré.
Wintel :
Borland fournit l'environnement
Turbo complet avec éditeur, débogueur,
etc. Mais c'est
passablement vieux : la version 2.0 distribuée sur les sites de
Borland date de 1988, il s'agit donc d'un compilateur
pré-ANSI (cf. 3.7). Si
l'on tient à utiliser du matériel Borland,
Turbo C++ 1.01 sera plus confortable et plus conforme
à la norme (en ayant récupéré l'archive BC20P2.ZIP
qui traîne un peu partout).
Mieux vaut se rabattre sur le couple
djgpp-RHIDE (tentez votre chance ici :
www.tu-chemnitz.de/~sho/rho/rhide-1.4/rhide.html
).
Il y a aussi Source Navigator disponible ici :
sources.redhat.com/sourcenav/
.
On pourra aussi utiliser NTemacs
(cf.
www.linux-france.org/article/appli/emacs/Gnus+Emacs/Windows/emacs.html
).
(voir aussi 4.2).
4.2 Compilateurs
Le choix dépend du système d'exploitation et du processeur cible.
Apple :
Pour machines sous MacOS, le compilateur
d'Apple est gratuit, il est là :
ftp.apple.com/devworld/Tool_Chest/Core_Mac_OS_Tools/MPW_etc./
.
On sera en mesure de vous dire quoi installer sur MacOS
X sur fr.comp.sys.mac.programmation
.
Unix :
Pour Unix-like, le GNU C Compiler (
alias GNU
CC ou gcc) est fourni avec toute
distribution *BSD ou GNU/Linux.
Wintel :
Pour machines Wintel, il existe un portage du célèbre
GNU C Compiler :
www.delorie.com/djgpp/
.
Un autre portage existe pour Windows :
sources.redhat.com/cygwin/
.
MinGW (Minimalist-GnuWin32), encore un portage
Win32 de
gcc.
Frustre mais puissant, optimise bien, adapté si
l'on connaît bien l'environnement de programmation UNIX :
mingw.sourceforge.net/
Borland a aussi mis en
téléchargement gratuit certains de ses compilateurs là :
www.borland.com/bcppbuilder/freecompiler/
ou là :
www.borland.fr/download/compilateurs/
.
Il y a aussi lcc-win32, qui est un dérivé du
lcc originel de Chris Fraser et David
Hanson.
lcc-win32 vient avec un éditeur intégré, et
contient ce qu'il faut comme documentation et bibliothèques pour
ouvrir des fenêtres sous Windows. Il est plus léger
en termes de consommation mémoire et de CPU que GNU
CC; il produit un code décent (mais néanmoins pas optimal) :
www.cs.virginia.edu/~lcc-win32/
4.3 Débogueurs
Apple :
Allez là : devworld.apple.com/tools/debuggers/
.
Unix :
GNU DB (alias gdb) est
fourni avec les distributions *BSD et
GNU/Linux.
Wintel :
À part celui de l'environnement Turbo
(cf. 4.1), regardez du côté de
sources.redhat.com/insight/
.
4.4 Graphisme
Apple :
Pour MacOS (classique), il vous faut récupérer
QuickDraw,
fournie par Apple :
devworld.apple.com/macos/quickdraw.html
Unix :
Pour environnement Unix, il existe un environnement
graphique libre, reproduisant le système X11 (dit
aussi X-Window). Il est fourni avec toute
distribution *BSD ou GNU/Linux. Allez le
voir sur www.xfree86.org/
.
Wintel :
Pour du graphisme sous DOS avec djgpp,
il y a Allegro qui se trouve là :
www.talula.demon.co.uk/allegro
4.5 Bibliothèques
Calcul scientifique :
Pour du calcul scientifique, ici : www.netlib.org/
(mis à jour très régulièrement).
Ajay Shah maintenait un index de codes libres et/ou du
domaine public implémentant diverses routines de calcul. On le
trouve par exemple là :
ftp.math.psu.edu/pub/FAQ/numcomp-free-c
mais ça date.
Numerical Recipes in C :
Là :
www.ulib.org/webRoot/Books/Numerical_Recipes/bookcpdf.html
.
Les sources ont été incluses dans la distribution
Linux pour les plateformes à base de
PowerPC :
« LinuxPPC 1999 ». Les sources ont disparu des
miroirs et « LinuxPPC 2000 » ne l'intègre plus mais
les miroirs ont encore (en septembre 2000) le package
de binaires (pour PPC uniquement) et certains sont prêts à envoyer
les sources.
Générateurs de nombres pseudo-aléatoires :
(Les anglo-saxons disent Pseudo-Random Numbers
Generators et abrègent en PRNG)
Par exemple là :
www.io.com/~ritter/NETLINKS.HTM#RandomnessLinks
,
burtleburtle.net/bob/rand/isaacafa.html
ou
random.mat.sbg.ac.at/
.
Voir aussi www.netlib.org/
et cherchez enfin
r250, RANLIB et FSULTRA.
Calcul multi-précision :
On trouve le code des fonctions quad()
de
BSD quelque part là :
ftp.uu.net/systems/unix/bsd-sources/
dans
un répertoire src/lib/libc/quad/
.
Il y a aussi la bibliothèque GNU MP (GNU Multiple
Precision ou GMP) que l'on trouve ici :
www.swox.com/gmp/
.
Enfin, il y a le package
MIRACL (voir indigo.ie/~mscott/
).
Les sources de la bibliothèque standard :
Le livre
Plauger P.J. (1994), La bibliothèque C
standard chez Masson, réimplémente la plupart des
fonctions. Attention, les sources ne sont pas libres. On peut
aussi consulter les sources des Unix-based libres
*BSD ou encore celles du projet GNU.
(informations bienvenues à
pascal.cabaud@wanadoo.fr
).
4.6 Outils divers
Notez que la majorité des outils cités ici ont initialement été
écrits pour des plateformes Unix. Il existe assez
souvent des portages sur d'autres OS, que l'on cite
parfois. Il arrive fréquemment que je ne donne pas d'URL ; une
recherche par exemple avec le merveilleux www.google.com/
vous donnera des liens à ne plus savoir qu'en faire ...
Certains sont là :
gatekeeper.dec.com/pub/usenet/comp.sources.unix/
ou sur le mirroir :
ftp.uu.net/usenet/comp.sources.unix/
.
Pour les outils
GNU, voir sur le site du projet : www.gnu.org/
.
Indentation et mise en forme :
Cherchez cb, enscript,
indent, lgrind, vgrind.
Vérification de sources :
Cherchez lint et regardez
cplus.about.com/compute/cplus/msublint.htm
. On
trouve LCLint là :
larch.lcs.mit.edu/pub/Larch/lclint/
.
Génération de références croisées :
Cherchez cflow, cxref,
calls, cscope, xscope, ou
ixfw. C'est pratique pour voir les graphes de
dépendances des fonctions.
Dégénération de code C :
Cherchez obfus, shroud, ou
opqcp. Ce gadget sert à rendre un source parfaitement
illisible.
Interprétation des déclarations :
Cherchez cdecl dans le volume 14
, à
www.uu.net/usenet/comp.sources.unix/
. Ça sert
essentiellement à comprendre des déclarations ou à en générer.
Génération de dépendances :
Cherchez makedepend ou tentez cc -M ou
cpp -M.
Gestion de projets :
Cherchez GNU make. Voir aussi 3.10.
Contrôle de versions :
Cherchez CVS, RCS et SCCS.
Voir aussi 3.10.
Traducteurs Fortran/C et Pascal/C :
Cherchez ftoc et f2c pour le Fortran.
On trouve f2c sur
www.netlib.org/
. Il existe une version pour
MacOS :
www.alumni.caltech.edu/~igormt/Mac_F2C.html
.
Pour le Pascal, ça se trouve là :
csvax.cs.caltech.edu/pub/p2c-1.20.tar.Z
.
Cherchez aussi ptoc.
Calcul d'unités :
Cherchez ccount, Metre, lcount,
csize,
www.qucis.queensu.ca/
.
Calcul du nombre de lignes d'un fichier source :
Utilisez wc ou $ grep -c ";"
.
Génération de prototypes :
Cherchez cproto (www.vex.net/~cthuang/cproto/
)
et cextract.
Gestion correcte des appels à malloc :
Cherchez dbmalloc, MallocDebug,
JMalloc.c
et JMalloc.h
, zieutez la page
www.cs.colorado.edu/homes/zorn/public_html/MallocDebug.html
et regardez :
ftp.crpht.lu/pub/sources/memdebug
. Ceci
fait, il vous reste à compiler et installer dmalloc
provenant de là :
dmalloc.com/
.
Génération de documentation à partir de code commenté :
Il existe divers outils dont doc++ et
doxygen. Le dernier gère le format LaTeX2e, HTML et
nroff et se trouve ici :
www.stack.nl/~dimitri/doxygen/
.
Voir aussi 4.7.
Préprocesseur sélectif :
Cherchez unifdef, rmifdef et
scpp. Ils suppriment les directives
#ifdef
inutiles, rendant ainsi un code plus lisible.
Gestion des expressions régulières :
Le projet GNU propose rx.
Il y a aussi regexp sur
ftp.cs.toronto.edu/pub/regexp.shar.Z
.
Profileur :
Le projet GNU développe gprof (
cf. 16.1).
4.7 Où trouver du code ?
Là : www.gnu.org
par exemple.
Les logiciels GNU, les Unix-like
*BSD et
GNU/Linux sont distribués (ils sont
libres) avec les sources. La pluparts d'entre eux
étant écrits en C, cela en fait une très grande collection de
code.
On trouvera du code (du domaine public) là :
ftp.cdrom.com
.
Il y a aussi
ftp.brokersys.com/pub/snippets
et sur le
web à www.brokersys.com/snippets/
ou
www.ping.de/sites/systemcodes/
ou encore par
ftp par exemple à
ftp.funet.fi/pub/languages/C/Publib/
.
Les serveurs ftp.uu.net/
,
archive.umich.edu/
,
oak.oakland.edu/
,
sumex-aim.stanford.edu/
, et
wuarchive.wustl.edu/
,
hébergent une grande quantité de logiciels, code et documentation
libres et/ou gratuits. le serveur princicpal du projet
GNU est prep.ai.mit.edu/
.
Voir aussi 4.6 et 4.5.
(informations bienvenues à
pascal.cabaud@wanadoo.fr
)
précédent
index
suivant
faq-fclc 5/3/2002 (8h 59:04)