1
C1 : INTRODUCTION
Sommaire :
1 Préliminaire :
- Se positionner dans l’ordinateur
2 Programmation : rapide tour d’horizon :
- Compilateur
- Variables, fonctions
- Environnement de développement
- Fonction « main »
3 Qu’est ce qu’une variable ? Plongée en mémoire :
- Mémoire adresse
- Adresse, « mots »
- « Nombre-octets » (notation étendue, troncature)
- Codage des nombres négatifs (à titre indicatif)
- Des « types » de variables
- Variables par unité ou par ensembles.
- Se représenter les variables dans la mémoire
Références bibliographiques
2
3
Introduction :
Nous situer dans l’ordinateur et ses différents niveaux d’intervention.
Lordinateur : une hiérarchie d’abstractions, des niveaux ou encore machines virtuelles
NIVEAU - ABSTRACTION
6 Programmes applicatifs
5 Langage de programmation <-Nous sommes ici
4 Langage assembleur
3 Noyau du système d’exploitation
2 Langage machine
1 Microprogramme
0 Logique numérique
0 : Logique numérique, circuits électroniques de l’ordinateur, portes logiques (ET, OU)
univers binaire 0/1
1 : Microprogramme, premier niveau de langage, tous les ordinateurs ne le possèdent pas
(des séquences d’étapes utilisées par le niveau 2 du langage machine)
2 : Langage machine : à ce niveau, ajouter 2 nombres, déplacer des données d’un
emplacement vers un autre, déterminer si un nombre est égal à 0 sont des instructions
élémentaires suffisantes pour exécuter n’importe quel programme ou application des niveaux
plus élevés !
3 : Noyau système exploitation : ordonnancer et allouer les ressources d’un ordinateur aux
différents programmes s’exécutant sur la machine. Il peut être programmé dans un langage de
programmation de haut niveau qui a été traduit en langage machine, c'est-à-dire compilé.
Rappelons que Le langge C a été créé initialement pour écrire le système d’exploitation
UNIX.
En plus du noyau le système d’exploitation complet comprend des programmes applicatifs
(niveau 6), le plus souvent un rôle d’interface (gestion des fichiers, gestion des fenêtres etc.)
4 : Le langage d’assemblage est une représentation symbolique des instructions rencontrées
aux niveaux inférieurs. Un programme en langage d’assemblage est converti en instructions
de niveau inférieur par un traducteur appelé un assembleur
5 : Les langages de hauts niveaux grâce auxquels les applications peuvent être écrites plus
facilement qu’en langage assembleur. Il existe des milliers de langages à ce niveau (les plus
connus, Basic, C, pascal, Cobol, Fortan, Lisp…)
Ils font eux-mêmes l’objet d’une classification en strates C, C++, JAVA, JAVASCRIPT…
par exemple)
6 : Les applications ou collections de programmes dans des domaines multiples et variés.
4
1 Compilateur, variables, fonctions, environnement, fonction « main »
Compilateur
Le compilateur est un programme qui lit un programme écrit dans un premier langage _ le
langage source _ et le traduit dans un programme équivalent écrit dans un autre langage _ le
langage cible _ Eventuellement il peut signaler des erreurs dans le programme source. Si l’on
écrit un programme en C, le langage C est le source et lorsque l’on fabrique un exécutable, la
compilation réalise sa traduction en langage machine.
En général le compilateur est accompagné d’une interface de type traitement de texte qui
permet l’écriture des programmes en langages source.
Variables, fonctions
Au niveau le plus basique de l’écriture de programmes on a des variables et des fonctions.
Ecrire un programme c’est définir des variables et concevoir des fonctions qui correspondent
aux traitements opérés sur les variables.
Les fonctions sont simplement des ensembles d’instructions qui modifie les valeurs des
variables, selon les traitements que l’on souhaite opérer sur ces variables, les données. La
notion d’algorithme correspond à la construction des fonctions ainsi qu’à l’organisation des
fonctions entre elles. Un algorithme est une suite finie d’instructions en vue de
l’accomplissement d’une tâche.
Environnement
Il est impossible aux programmeurs de réinventer la roue à chaque nouveau projet ! En
général tout projet s’appuie sur un environnement qui offre, outre le compilateur, des
librairies de fonctions prêtes à l’emploi.
Librairies standards
Le langage C est accompagné d’un certain nombre de librairies dites « standards ». Elles
comprennent des fonctions de base dans différents domaines. Par exemple <math.h>,
<string.h>, <stdlib.h>, <stdio.h>, <time.h>, etc.
printf(), scanf(), rand()
Dans les exemples qui suivent, nous utiliserons les fonctions de la librairie <stdio.h> printf()
et scanf() et de la librairie <stdlib.h> la fonction rand(). Nous détaillerons plus tard ces
fonctions, principalement :
- La fonction printf() permet d‘afficher une chaîne de caractères dans une fenêtre console.
Elle utilise un fichier nommé stdout qui est automatiquement et invisiblement créé au
lancement du programme.
- La fonction scanf() permet de récupérer des entrée clavier
Elle utilise un fichier stdin qui est créé en même temps que stdout.
- La fonction rand() renvoie une valeur comprise entre 0 et RAND_MAX.
D’autres librairies libres de droits ou pas dans tous les domaines
D’autres librairies dans des domaines spécialisées peuvent être ajoutées et utilisées, par
exemple la très bonne librairie « allegro » (A Low Level Game Routine) pour la création de
jeux vidéos.
5
Fonction main()
Pour le système d’exploitation, un exécutable se traduit par une pile d’instruction avec une
entrée, en quelque sorte la « tête » du programme, pour le programmeur c’est la fonction
main(). Ainsi tout programme commence par un main().
Selon le système d’exploitation ou l’environnement de développement, le main() peut avoir
des caractéristiques spécifiques. Mais le main() standard a l’aspect suivant :
Exemple de programme qui affiche dans une fenêtre console « bonjour » :
int main() // tête ou entrée du programme,
{ // ouverture bloc d’instructions
// appel de la fonction printf() qui affiche la chaîne de caractères passée
// en paramètre
printf bonjour ») ;
// arrêter le programme pour avoir le temps de lire le résultat
system PAUSE ») ;
// valeur de retour de la fonction qui indique un bon déroulement.
return 0 ;
} // fermeture bloc d’instructions
Le signe // dans un programme indique que tout ce qui suit n’est plus considéré comme du
code opérationnel mais est un commentaire sur le code ou du code mis en commentaire.
2 Plongée en mémoire : adresse, « mots », nombre-octets, variables et types
Mémoire, adresse, mots
Selon les explications données par Alfred Aho et Jeffrey Ullman, la mémoire repose sur des
« puces mémoires » ou « puces RAM ». Une puce est un circuit intégré, d’environ un
centimètre carré qui rassemble un grand nombre de conducteurs et composants électriques.
C’est sont casés les fameux « bits » en grande quantité. Leur nombre est toujours une
puissance paire de deux ; c’est-à-dire 22i avec i un entier. Tous les bits ont une adresse et ils
sont en quelque sorte alignés du premier, d’adresse « 0 », au dernier dont l’adresse correspond
au nombre de bits sur la puce. Du fait de cette adresse il est possible de lire et d’écrire sur
chaque bit de la puce mémoire [AHO, 1993, p. 171].
Mais la mémoire principale est construite avec pour unité de base l’octet : c’est la plus petite
quantité de stockage. Pour avoir des octets, huit puces sont placées en parallèle. Huit puces
sont alignées sur la même adresse. Chaque puce fournit alors un bit de l’octet et ils sont lus ou
écrits en même temps. Lire un octet prend alors le même temps que de lire un bit.
Ainsi La mémoire d’un ordinateur est une série d’emplacement numérotés contenant chacun
un nombre. Le numéro d’un emplacement est appelé une adresse, un emplacement est un
ensemble de 8 bits.
Le microprocesseur pourra effectuer 2 opérations sur les octets de la mémoire :
1) Modifier le contenu d’un emplacement, la valeur précédente sera écrasée par cette
opération
1 / 12 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !