Feuille de travaux pratiques numéro 1 cours d'algorithmique de licence
 

L'art de la mise en oeuvre

Objectifs :  Initiation à la detection et la correction des erreurs avec le compilateur gcc et le debogueur gdb.  Analyse des temps de calcul par le profiler gprof.

Temps : 1 séance de 3 heures.
 

 
 
  1. Parcourez les pages du manuel à propos des commandes gcc, gdb et gprof pour n'en retenir que l'essentiel. Préparez un mémo. Expliquez les liens entre le compilateur gcc, le debogueur gdb et le profileur gprof.
  2. Editer le programme crible.c.  Faire une première lecture. Que semble faire ce programme ?
  3. La compilation  simple sans option de crible.c signale  quelques  erreurs, corrigez les.
  4. Utilisez l'option -o pour faire un exécutable crible.x. Lancez le. Que se passe-il ?
  5. Compilez  de nouveau avec l'option -Wall.Corrigez toutes les <<erreurs>> signalées par gcc.
  6. Le programme ne marche toujours pas :-( . Quelle est la nature de l'erreur ?
  7. Compilez avec l'option de debogage -g.
  8. Utilisez  le debogueur  gdb pour  trouver la ligne erronée.
  9. Réparez la source.
  10. Exécutez le programme en faisant varier le paramètre d'entrée  de 1000, 10000, etc...  Prendre garde au swap !
  11. Devinez une expression du temps de calcul de crible.x
  12. Transformez votre intuition en une démonstration. Puis déterminez le facteur caché de cette implantation de la méthode du crible d'Eratostene.
  13. Soit p(n) le nombre de premiers inférieurs à n. Représentez les graphes des fonctions p(n) et f(n) = n/log(n). Commentaire ?
  14. Utilisez l'option de compilation -pg puis le profileur gprof pour déterminer le temps consommé par la procédure bif(tek, n).
  15. Quelle est l'influence des options de compilation -Ox ?
Challenge :
Ecrire un nouveau programme,  pour calculer p(n) pour un entier n aussi grand que possible en moins de 5 minutes.