INF 423 A : Programmation C avancée


Retour
Imprimer la fiche programme
Code analytique: EDOINFMA2
Responsable  :    
Programmé en UV2 MAJ INF

Présentation :

Bien que vieux d'une trentaine d'années, le langage C est toujours utilisé
de manière importante en informatique, que ce soit dans les systèmes
embarqués proches du matériel électronique, les systèmes d'exploitation ou
dans de l'informatique plus générale lorsqu'on a besoin tout
particulièrement de performance.

Essayant de rassembler les avantages de langages de (assez) haut niveau
avec un contrôle fin proche du langage machine, le langage C a su évoluer
en se modernisant jusqu'à la dernière version C99. On abordera aussi les
extensions comme le C++ (programmation orientée objet) et le UPC (Unified
Parallel C) et les restrictions (traditionnel K&R C).

Ce cours est conseillé à ceux qui se prédestinent aux métiers de
l'informatique mais aussi aux électroniciens, traiteurs du signal,
etc. qui auront à développer des programmes proches du matériel pour
contrôler leurs applications (DSP, microcontrôleurs,...).

Ce cours sera agrémenté de travaux pratiques de programmation, sur
l'environnement de compilation (cc, make), sur l'utilisation de
débogueurs, problèmes d'allocation mémoire, d'utilisation d'éditeurs avec
support du C (Emacs, tags en vi).

Objectifs (obsolète):

- comprendre un programme existant et de naviguer dedans ;
- programmer en C ;
- comprendre le codage des informations dans un ordinateur (nombres entiers, flottants...) ;
- maîtriser les types et les pointeurs ;
- mettre au point un programme ;
- connaître les bibliothèques standard ;
- maîtriser le modèle de la mémoire ;
- savoir utiliser un éditeur de texte ;
- maîtriser un débogueur ;
- mélanger du C avec d'autres langages, rajouter des instructions machines dans un programme en C.

Ce module est fortement conseillé par exemple pour des gens qui font des projets de robotique style E=M6.

Pré-requis :

Bases de programmation, par exemple en Java

Liens :

https://info.enstb.org/enseignement/tc/c_avance/

Volume horaire : 24h


Contenu détaillé :

Bootstrap des fondamentaux du cours pour pouvoir avancer

Le langage C
- syntaxe : instructions, modularité,...
- modèle mémoire : pointeurs, pile, tas,...

Éditeurs de texte :
- Emacs (tags, mode C, debogueur)
- vi (tags)

Le préprocesseur C (cpp)
- inclusions
- macro-fonctions
- évaluation

Environnement de développement
- compilation (gcc)
- édition de lien, bibliothèques, archiveur
- GNU make

Le débogueur
- gdb & ddd
- débogage de l'allocation mémoire

Les extensions :
- C++
- UPC

Mélanger du C avec autre chose :
- modèle d'exécution
- langage machine
- système d'exploitation
- Fortran
- perl
- Python
- Java
- C++


C1 : démarrage, C pour un programmeur Java


TP1-2 : programmation & utilisation d'un éditeur
TP3 : utilisation d'un débogueur
TP4 : entrées-sorties
TP5 : débogage mémoire


Année 2006/2007
Dernière mise à jour le 24-MAY-06
Validation par le responsable de programme le


IMT Atlantique
Campus de Brest
Technopôle Brest-Iroise
CS 83818
29238 Brest Cedex 3
France

Tél  +33 (0)2 29 00 11 11
Fax +33 (0)2 29 00 10 00