« INFO916 : Cours de C » : différence entre les versions
Ligne 31 : | Ligne 31 : | ||
La mémoire est en fait un tableau d'octets (byte en anglais). Un octet est un entier sur 8 bits (bits aussi en anglais) donc compris entre 0 et 255 = 2<sup>8</sup> - 1. Donc mathématiquement un élément de |
La mémoire est en fait un tableau d'octets (byte en anglais). Un octet est un entier sur 8 bits (bits aussi en anglais) donc compris entre 0 et 255 = 2<sup>8</sup> - 1. Donc mathématiquement un élément de |
||
< |
{0;1;2;...;255}<sup>N</sup> où N dépend de l'architecture de la machine (N = 2<sup>30</sup>, N = 2<sup>31</sup> ou N = 2<sup>32</sup> |
||
sur une machine 32 bits et N = 2<sup>48</sup> ou plus sur une machine 64 bits). |
sur une machine 32 bits et N = 2<sup>48</sup> ou plus sur une machine 64 bits). |
||
Attention: N ne dépend pas de la quantité de mémoire installée dans la machine ! |
Attention: N ne dépend pas de la quantité de mémoire installée dans la machine ! |
||
Seul une partie de la mémoire est accessible en lecture écriture pour le programme C (on peut aussi avoir des zones mémoire accessible en lecture seule). |
|||
De plus, la mémoire accessible est divisée en deux zones: |
|||
* La pile |
|||
* Le tas |
|||
== Pointeurs et adresses == |
== Pointeurs et adresses == |
Version du 13 septembre 2007 à 07:57
Introduction
Qu'est ce qu'un langage de programmation :
Ce sont des intruction indiquant à un ordinateur ce qu'il doit faire.
Un langage est caractérisé par trois éléments :
- syntaxe : quel sont les programmes valides
- sémantique : que font faire ces programmes à la machine
- des usages et conventions : des pratiques usuelles pour mieux programmer
Ce cours portera sur les trois aspects, notemment, on devra être capable d'évaluer un programme C à la main.
Historique et classification des languages
C est un
- langage impératif et procédural
- "assembleur" portable
Modèle mémoire et type de données
Modèle mémoire
Afin de pouvoir donner la sémantique du langage, il nous faut un "modèle" simplifié de machine. Essentiellement, un programme C agit sur deux choses:
- La mémoire
- Les entrées/sorties (fichier)
On s'intéressera aux entrées/sorties en fin de cours.
La mémoire est en fait un tableau d'octets (byte en anglais). Un octet est un entier sur 8 bits (bits aussi en anglais) donc compris entre 0 et 255 = 28 - 1. Donc mathématiquement un élément de {0;1;2;...;255}N où N dépend de l'architecture de la machine (N = 230, N = 231 ou N = 232 sur une machine 32 bits et N = 248 ou plus sur une machine 64 bits).
Attention: N ne dépend pas de la quantité de mémoire installée dans la machine !
Seul une partie de la mémoire est accessible en lecture écriture pour le programme C (on peut aussi avoir des zones mémoire accessible en lecture seule). De plus, la mémoire accessible est divisée en deux zones:
- La pile
- Le tas