Programmation C avancé Édition, programmation et mise au point dans le cas d’un
Programmation C avancé Édition, programmation et mise au point dans le cas d’un environnement Unix Stéphanie EVEN (Stephanie.Even@enstb.org) Serge GUELTON (Serge.Guelton@enstb.org) Ronan KERYELL (Ronan.Keryell@hpc-project.com) High Performance Computing Architecture and Security (HPCAS) Département Informatique, TÉ ELÉ ECOM Bretagne & HPC Project Avril 2009 1.25 •Introduction ◮ Le plan 1 Introduction Bibliographie Petite histoire 2 Langage Généralités 3 Un ordinateur ? Mais qu’est-ce ? Les bases de la numérologie Calcul binaire 4 Déclarations Généralités Types des objets Portée 5 Expressions Sémantique opérateurs Coercition de type 6 Instructions 7 Préprocesseur 8 Bibliothèques Modèle mémoire & allocation Entrées-sorties GNOME 9 Éditeur exemple d’Emacs Tuning de son clavier 10 Compilation 11 Modularisation 12 Mise au point Dévermineur (debugger) Analyse mémoire 13 Extensions Du C pour le graphisme C++ 14 Délires Le bêtisier Concours de programmes incompréhensibles 15 Conclusion 16 Index 17 Table des matières ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 2 / 361 •Introduction ◮Domaine Domaine d’utilisation (I) • Langage à spectre large porté sur toutes les applications ◮Supercalculateurs parallèles avec 10 000 −−106 processeurs ◮Micro-contrôleurs (proche du matériel) ◮Systèmes d’exploitation ◮Synthèse architecturale (SpecC, SystemC) • De nombreuses bibliothèques pour faire des choses de haut niveau ◮Algorithmique et structures de données ◮WWW ◮Composants métiers ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 3 / 361 •Introduction ◮Domaine Pourquoi un cours de C ? (I) • Utilisé dans de nombreux projets • Fait partie de l’inconscient collectif informatique ◮Langage informatique servant de base à de nombreux autres langages ◮Nombreux langages définis par rapport au C (C++, Java, C#, ObjectiveC, UPC, OpenCL, Cg, CUDA, Brook+, CTM, OpenCL, SystemC, SpecC, HandelC, HyperC, PompC, csh...) • De nombreux autres domaines de l’ENST Bretagne impliquent des connaissance en C ◮Traitement du signal ◮Analyse d’image ◮Électronique • Projet coupe de robotique (E=M6) difficile par le passé car peu d’élèves ayant fait du C dans la vraie vie / But subliminal du cours : former l’équipe E=M6 ! , Dédicace spéciale à Céline et son port parallèle , ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 4 / 361 •Introduction ◮Domaine Pourquoi un cours de C ? (II) • Ce cours présuppose connaissance d’un langage informatique ! ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 5 / 361 •Introduction ◮Domaine De nombreuses extensions (I) Un langage vivant • Extensions orientées objet (C++, Objective C) • Programmation parallèle (UPC, OpenMP) • Cg, CUDA (cartes graphiques de nVidia), Brook+, CTM (AMD-ATI), OpenCL • Extensions ad-hoc ou utilisation de classes ? ... et des restrictions sur du matériel réduit • Micro-contrôleurs (pas de float, double...) • 8088–80386 (far, near...) • DSP ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 6 / 361 •Introduction ◮Domaine Problématique pédagogique (I) • Apprendre progressivement tout un langage et environnement de développement ◮De nombreuses interdépendances de concepts ◮Obligé de faire un enseignement en largeur d’abord • Test un concept nouveau : le parcours pédagogique de l’exposé n’est pas forcément celui des transparents Effets de bord positifs • Tient les élèves en haleine car doivent faire des sauts de pages plus complexes • Muscle plus les doigts ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 7 / 361 •Introduction ◮Domaine Hétérogénéité des élèves (I) • Parcours de plus en plus hétérogènes à cause (grâce) aux réformes de l’enseignement (semestrialisation et optionalité) et la variété des recrutements • Phénomène aggravé grâce à la pénétration culturelle de l’informatique à la maison • Comment faire le grand écart entre des débutants et des confirmés en langage C ? • Gageure : arriver à intéresser les 2 publics , • Plus qu’un cours de C : faire passer une « culture » informatique • Pas de « petites classes » mais il faut des élèves actifs ! ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 8 / 361 •Introduction ◮Bibliographie Le plan 1 Introduction Bibliographie Petite histoire 2 Langage Généralités 3 Un ordinateur ? Mais qu’est-ce ? Les bases de la numérologie Calcul binaire 4 Déclarations Généralités Types des objets Portée 5 Expressions Sémantique opérateurs Coercition de type 6 Instructions 7 Préprocesseur 8 Bibliothèques Modèle mémoire & allocation Entrées-sorties GNOME 9 Éditeur exemple d’Emacs Tuning de son clavier 10 Compilation 11 Modularisation 12 Mise au point Dévermineur (debugger) Analyse mémoire 13 Extensions Du C pour le graphisme C++ 14 Délires Le bêtisier Concours de programmes incompréhensibles 15 Conclusion 16 Index 17 Table des matières ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 9 / 361 •Introduction ◮Bibliographie Ressources & Bibliographie (I) Axiome Ce support de présentation est « cliquable » • Livres ◮« Méthodologie de la programmation en C : norme C 99 - API POSIX », Achille Braquelaire , 4èmeédition, Dunod, 2005 Sciences Sup ◮« Programmation avancée en C (avec exercices et corrigés) », Sébastien Varrette et Nicolas Bernard, février 2007, Hermes Science Publication http://www-id.imag.fr/~svarrett/cours.html#poly_C • http://cslibrary.stanford.edu Explications sur plein de concepts informatiques, dont un film en pâte à modeler sur les pointeurs , ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 10 / 361 •Introduction ◮Bibliographie Ressources & Bibliographie (II) • http://www.laas.fr/~matthieu/cours/c-superflu « Guide superflu de programmation en langage C » Matthieu HERRB, exégèse de quelques chausse-trappes • http://www-clips.imag.fr/commun/bernard.cassagne/Introduction_ANSI_C.html • http://www-inf.int-evry.fr/COURS/CTOUTMOD cours interactif sur C et Emacs • http://picolibre.int-evry.fr/projects/coursc Cours plus complet • Documentation info sur GNU, GCC, Emacs,... : taper C-h i dans Emacs • La même chose en ligne sur http://www.gnu.org/manual/ ◮http://gcc.gnu.org/onlinedocs compilateurs ◮http://www.gnu.org/software/libc/manual bibliothèque standard du C ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 11 / 361 •Introduction ◮Bibliographie Ressources & Bibliographie (III) ◮http://www.gnu.org/software/make/manual gestion de projet Make ◮http://www.gnu.org/software/gdb/documentation débogueur ◮http://www.gnu.org/software/ddd/manual débogueur graphique ◮http://www.gnu.org/software/emacs/manual • http://en.wikipedia.org/wiki/C_(programming_language) • http://en.wikipedia.org/wiki/C99 • FAQ (foires aux questions) • Ingéniérie par moteur de recherche : envoyer messages d’erreur dans le moteur , • http://www.open-std.org/JTC1/SC22/WG14 http://www.open-std.org/JTC1/SC22/WG14/www/docs/n1256.pdf Use the source, Luke... en 552 pages ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 12 / 361 •Introduction ◮Bibliographie Monitorat ¡ ∃Le monitorat à l’ENST Bretagne le soir ! ¡ En monitorat tu iras ! , ¡ ∃Le monitorat à l’ENST Bretagne le soir ! ¡ En monitorat tu iras ! , Theorem ¡ ∃Le monitorat à l’ENST Bretagne le soir ! ¡ En monitorat tu iras ! , ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 13 / 361 •Introduction ◮Petite histoire Le plan 1 Introduction Bibliographie Petite histoire 2 Langage Généralités 3 Un ordinateur ? Mais qu’est-ce ? Les bases de la numérologie Calcul binaire 4 Déclarations Généralités Types des objets Portée 5 Expressions Sémantique opérateurs Coercition de type 6 Instructions 7 Préprocesseur 8 Bibliothèques Modèle mémoire & allocation Entrées-sorties GNOME 9 Éditeur exemple d’Emacs Tuning de son clavier 10 Compilation 11 Modularisation 12 Mise au point Dévermineur (debugger) Analyse mémoire 13 Extensions Du C pour le graphisme C++ 14 Délires Le bêtisier Concours de programmes incompréhensibles 15 Conclusion 16 Index 17 Table des matières ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 14 / 361 •Introduction ◮Petite histoire Préhistoire (I) Projet MULTICS : MULTiplexed Information and Computing Service • MIT, Bell Telephone Laboratories de AT&T, General Electric • Offrir puissance de calcul pour toute la ville de Boston : le Minitel avant l’heure • Notion de « Computer Grid » (qui revient de nos jours...) • Plus difficile que prévu ; abandonné mais grande influence dans la communauté ∃encore sous forme de secte http://www.multicians.org , ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 15 / 361 •Introduction ◮Petite histoire C & Unix Story (I) • En attendant la suite, Ken THOMSON de BTL écrit un jeu Space Travel qu’il fait tourner sur un PDP-7 (machine pas trop chère) http://en.wikipedia.org/wiki/PDP-7 • Problème : pas d’environnement de développement sur PDP-7 et nécessité de faire de l’assemblage croisé sur Honeywell 635 roulant GECOS • Machine de 32K mots de 18 bits : un microcontrôleur de nos jours ! , • Pour faciliter le développement du jeu, développement d’un système d’exploitation pour le PDP-7 : système de fichier simple (s5fs), système de gestion de processus, interpréteur de commande (shell). Développé en assembleur (langage machine) • Le système devient auto-suffisant et est nommé Unix en 1969, jeu de mots (eunuchs) aussi en opposition à Multics ■C avant C – UV2 INF 446 TÉ ELÉ ECOM Bretagne/Info/HPCAS S. EVEN, S. GUELTON & R. KERYELL 16 / 361 •Introduction ◮Petite uploads/Litterature/ r.pdf
Documents similaires










-
35
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Dec 06, 2021
- Catégorie Literature / Litté...
- Langue French
- Taille du fichier 12.7138MB