CQP 112 Introduc/on à la programma/on Thème 2 : Programma/on et Ordinateur Aïda Ouangraoua Département d’informa/que CQP 112 : Introduc/on à la programma/on Plan 1. Contexte 2. Composants matériels 3. Environnement logiciel 4. Développement de logiciels Contexte q Programme : Instruc/ons des/nées à un ordinateur q Ordinateur : ou/l inanimé aKendant ordres (programmes) q Langage de l’ordinateur : binaire (aride) q Langage du programmeur : Python, ou autres. q Compilateur/Interprétateur : traducteur q Systèmes d’exploita/on : Logiciel gérant les ressources matérielles et logicielles de l’ordinateur Exemple : Linux, Windows Contexte q Programme : Instruc/ons des/nées à un ordinateur q Ordinateur : ou/l inanimé aKendant ordres (programmes) q Langage de l’ordinateur : binaire (aride) q Langage du programmeur : Python, ou autres. q Compilateur/Interprétateur : traducteur q Systèmes d’exploita/on : Logiciel gérant les ressources matérielles et logicielles de l’ordinateur Exemple : Linux, Windows Contexte q Programme : Instruc/ons des/nées à un ordinateur q Ordinateur : ou/l inanimé aKendant ordres (programmes) q Langage de l’ordinateur : binaire (aride) q Langage du programmeur : Python, ou autres. q Compilateur/Interprétateur : traducteur q Systèmes d’exploita/on : Logiciel gérant les ressources matérielles et logicielles de l’ordinateur Exemple : Linux, Windows Contexte q Ressources matérielles de l’ordinateur q processeur q mémoire centrale q périphérique (clavier, écran, souris, mémoire secondaire) q Ressources logicielles de l’ordinateur q tout programme ou logiciel installé q système d’exploita/on q éditeur de texte, base de donnée q compilateur, interprétateur Contexte q Ressources matérielles de l’ordinateur q processeur q mémoire centrale q périphérique (clavier, écran, souris, mémoire secondaire) q Ressources logicielles de l’ordinateur q tout programme ou logiciel installé q système d’exploita/on q éditeur de texte, base de donnée q compilateur, interprétateur Plan 1. Contexte 2. Composants matériels 3. Environnement logiciel 4. Développement de logiciels Composants d’un ordinateur Mémoire secondaire (disposi/f de stockage) (disque dur, carte mémoire, clé USB, DVD, CD-­‐ROM, …) Disposi/f d’entrée (clavier, souris, écran, …) Ordinateur = Boîte noire Disposi/f de sor/e (écran, imprimante, …) Réseau (communica/on, disposi/f de sor/e spéciale) Composants d’un ordinateur Boîte noire Unité centrale de traitement (UCT, CPU, coeur) Matériel = Hardware (processeur, mémoire, périphérique) Mémoire centrale (principale, RAM) Périphérique Logiciel = Soaware (Programme) Composants d’un ordinateur q Mémoire centrale q Séquence ordonnée de cellules (0 à N-­‐1) q N : taille de la mémoire exprimée en Kilo, Mega, Giga, Tera q 1Kilo = 210 celulles = 1024 cellules ; q 1Mega = 210Kilo = 220 celulles = 1048576 cellules ; q 1 Giga = 210Mega = 230 celulles = 1073741824 cellules ; Composants d’un ordinateur q Mémoire centrale q Cellule = 8 bits (0 ou 1) = 1 octet q Sur n bits, on peut coder 2n valeurs dis/nctes q Exemple : 3 bits, 23 = 8 valeurs q 000, 001, 010, 011, 100, 101, 110, 111 q Octet peut coder 28 = 256 valeurs dis/nctes Composants d’un ordinateur q Mémoire centrale q Mot = regroupements de cellules q Caractère (un cellule) ; En/er (2 ou 4 cellules) q Numéro de la cellule = adresse permeKant accès q Accès aux cellules en lecture ou écriture Composants d’un ordinateur q Conversion entre systèmes binaire et décimal q système binaire : chaîne de 0 et 1 ; bit de poids fort à gauche q bnbn-­‐1bn-­‐2…b1b0 è bn*2n + bn-­‐1*2n-­‐1 + b1*21 + b0*2 q Exemples : 1010 è 1*23+0*22+1*21+0*20 = 8+0+2+0 = 10 11001 è 1*24+1*23+0*22+0*21+1*20 = 16+8+0+0+1 = 25 q 1010 = 00001010 ; 11001 = 00011001 ; q système décimal : chaîne de chiffres (entre 0 et 9) q 25 = 2*101+5*100 = 1*24+1*23+1*20 è 11001 Exercices q Algorithmes 1 et 2 pour la traduc/on de nombres entre bases binaire et décimale q Exemples en base décimale : 149, 38 q Exemples en base binaire : 10100111, 00110100 Composants d’un ordinateur Boîte noire Unité centrale de traitement (UCT, CPU, coeur) Mémoire centrale (principale, RAM) Périphérique Composants d’un ordinateur q Unité Centrale de Traitement q Récupère données et instruc/ons en mémoire centrale q Les place dans ses registres, et fait les traitements q Retourne résultats en mémoire centrale Composants d’un ordinateur q Unité Centrale de Traitement q Unité de contrôle (synchronisa/on des composants) q Unité arithmé/que et logique (UAL, ac/ons/calculs élémentaires ) q Registres (généraux, dédiés) Composants d’un ordinateur q Registres q Registres généraux : stockage temporaire des données à traiter q Compteur ordinal (PC) : registre dédié (adresse de la prochaine instruc/on) q Registre d’instruc/on : registre dédié (stockage de la prochaine instruc/on) Ressources cri/ques à u/liser de façon op/male dans un programme Temps de calcul : Nombre d’instruc@ons élémentaires Unité centrale de traitement (UCT, CPU, coeur) Mémoire centrale (principale, RAM) Espace de mémoire : Composants d’un ordinateur Mémoire secondaire (disposi/f de stockage) (disque dur, carte mémoire, clé USB, DVD, CD-­‐ROM, …) Disposi/f d’entrée Unité centrale de traitement Mémoire centrale Disposi/f de sor/e Réseau (communica/on, disposi/f de sor/e spéciale) Composants d’un ordinateur q Périphériques q Entrées et Sor/es E/S : communica/on humain – ordinateur (clavier, souris, micro, écran tac/le, écran, imprimante) q Mémoire secondaire : mémoire supplémentaire non vola/le, moins rapide, de plus grande capacité que la mémoire centrale (disqueKe, disque dur, bande magné/que, CD, DVD, clé USB) Composants d’un ordinateur q Mémoire secondaire q Informa/ons organisées en enregistrements è fichiers q Fichier possède un nom permeKant de l’iden/fier/accéder q Fichier contenu dans Répertoire q Organisa/on similaire à celle d’un arbre /home/local/USHERBROOKE/<CIP> Lecteur_Reseau Documents Personnel Public … … … … Composants d’un ordinateur q Réseau q Communica/on / Partage des ressources q Ethernet q Sans-­‐fil q Modem q Autres périphériques q Cartes graphiques, autres périphériques spécialisés Plan 1. Contexte 2. Composants matériels 3. Environnement logiciel 4. Développement de logiciels Environnement logiciel q Logiciels (soaware) q Logiciel : dérivé du mot logique q Traitements effectués automa/quement par un ordinateur (programmes, données, documenta/on) Environnement logiciel q Environnement de développement par/culier suivant l’ordinateur et le programme q Système d’exploita/on q Applica/ons (terminal, ges/onnaire de fichiers, navigateur, etc.) q Ou/ls de développement (langage, éditeur de texte, compilateur, interpréteur) Environnement logiciel Environnement logiciel q Savoir u/liser efficacement l’environnement logiciel q Interagir avec système d’exploita/on q Démarrer et savoir u/liser environnements intégrés (éditeur de texte, ges/onnaire de fichier, interpréteur) Exemples : gedit, Nau/lus, Pycharm q Bien maîtriser syntaxe et séman/que du langage de programma/on (Python) Environnement logiciel q Langage de programma/on q Nécessaire pour concré/ser la concep/on q Plusieurs langages pouvant être classés suivant leur distance à la machine q Langage machine (binaire, aride, propre à la machine) q Langage d’assemblage (proche du langage machine, peut employer des symboles) q Langage de haut-­‐niveau (plus proche du langage humain, n’est pas propre à la machine) Environnement logiciel Code source #!/usr/bin/python # calcul du coût cout = prix + taxes Format texte Python Interpréteur (une instruc/on à la fois) Résultats Environnement logiciel Code source Code source édité #include <stdio.h> // calcul du coût cout = prix + taxes … cout = prix + taxes Format texte Format texte Code assembleur Load prix Add taxe Store cout Format texte Code objet 1A5B8EF2 F359C813 4297EEFF Format binaire Code Code Assembleur Code Pré-­‐compilateur Compilateur Code source assem-­‐ source objet édité bleur C++ Résultats Édi/on des liens dynamiques Exécu/on Code objet bibliothèque Code objet bibliothèque Édi/on des liens sta/ques Programme exécutable Plan 1. Contexte 2. Composants matériels 3. Environnement logiciel 4. Développement de logiciels Développement de logiciels Énoncé du problème Spécifica/on Analyse Document d’analyse Concep/on Document de concep/on Implanta/on Programmes Essais Correc/on des erreurs Augmenta/on du coût de détec/on des erreurs Développement de logiciels Énoncé du problème Spécifica/on Analyse Document d’analyse Concep/on Document de concep/on Ordinateur Implanta/on Programmes Essais Correc/on des erreurs Augmenta/on du coût de détec/on des erreurs Développement de logiciels Énoncé du problème Spécifica/on Étude de la Analyse Document d’analyse Concep/on complexité en termes de temps de calcul Document de concep/on Ordinateur Implanta/on Programmes Essais Correc/on des erreurs Augmenta/on du coût de détec/on des erreurs Sources q Introduc/on à la programma/on. M. Le Gonidec. Université du Sud, Toulon-­‐Var. q Analyse et programma/on. Notes de cours. G. Girard. Université de Sherbrooke. q Introduc/on à la programma/on. Notes de cours. M. For/n. Université de Sherbrooke.