ATE 209 A : Découverte du langage C


Retour
Imprimer la fiche programme
Code analytique: EDOTPPATE
Responsable  :    
Programmé en UV TPP ATE

Présentation :

Malgré son âge avancé (il date de 1972, autrement dit l'an II de l'ère Unix), C démeure aujourd'hui un langage de programmation incontournable pour l'ingénieur. C se situe à un niveau beaucoup plus bas de la machine que les langages actuels tel que Java, Python, Perl. Pour bien le comprendre il est donc indispensable d'entrer dans ce monde bien particulier de la mémoire de l'ordinateur, des registres, des piles, de l'arithmétique binaire, etc.

Objectifs (obsolète):

L'objectif de cet atelier est de fournir à l'élève qui a déjà des notions de programmation et d'algorithmique sous Java, les notions et outils nécessaires pour affronter la programmation en C. Une attention particulière sera portée aux concepts absents du langage Java comme les pointeurs. Pour mieux comprendre le fonctionnement du langage on étudiera brièvement du code assembleur Intel x86, généré par le compilateur gcc. L'atelier est couronné par un projet de programmation : le calcul, dans le langage C, de "grands nombres" tels que 65535 à la puissance 65535 (un nombre à plus de 315000 chiffres).

Pré-requis :

INF 102 A Regards sur l'Informatique
INF 103 A Initiation à la programmation

Volume horaire : 10h30


Contenu détaillé :

COURS 1h30
Syntaxe de C : expressions, opérateurs, variables, fonctions, pointeurs, structures, unions, directives de préprocesseur.

TP1
Premiers exercices simples pour acquérir la syntaxe de base et utiliser gcc en ligne de commande. Utilisation de ddd. Allocation de mémoire. Différences entre tableaux et pointeurs, passage de paramètres par valeur ou par référence.

À l'issue du TP1, l'élève doit être capable de comprendre (voire d'écrire) un programme C simple, de le compiler et de le déboguer sous ddd.

SUPPLÉMENT DE COURS 1h30
Introduction à l'assembleur x86 (généralités sur les registres, la pile, les instructions de base), suivi sous ddd et explication du code assembleur :
- d'une affectation ;
- de la déclaration d'une chaîne de caractères ;
- d'un test et d'une boucle ;
- de la déclaration et de l'utilisation d'une fonction ;
- de la différence entre variables globales, locales, statiques, registre ;
- d'une fonction récursive.

TP2
Exercices utilisant des fonctions et des structures. Mesures de performance de différentes versions du même programme (réorganisation du code, ou différents degrés d'optimisation gcc), et analyse des codes assembleur correspondants.

Le TP2, précédé d'un cours sur l'essentiel de l'assembleur x86, sert à montrer les coulisses de C. Comment les instructions de base sont-elles traduites ? Mesures de performance.

TP3
Pointeurs de fonction, assembleur inline, bibliothèque standard, déclarations extern, fichiers *.h et édition de liens, initiation à make.

Le TP3 présente l'arsenal d'outils "avancés" pour la programmation dans le monde réel. Les fonctions standard les plus importantes. Comment on organise du code dans différents fichiers, comment on le compile, à quoi sert make.


Année 2006/2007
Dernière mise à jour le 11-JUL-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