Analyse et programmation 1



Documents pareils
Introduction au langage C

Le langage C. Séance n 4


Architecture des ordinateurs Introduction à l informatique

1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples

Architecture des ordinateurs

Chaque ordinateur est constitué de différentes unités de stockage de données (Disque dur, Graveur ) que l on peut imaginer comme de grandes armoires.

CONFIGURATION DE L AUTOMATE SIEMENS

Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski

Programmation C. Apprendre à développer des programmes simples dans le langage C

Encryptions, compression et partitionnement des données

Programmation C. J.-F. Lalande. 15 novembre 2012

Cours Langage C/C++ Programmation modulaire

Outils pour la pratique

Université du Québec à Chicoutimi. Département d informatique et de mathématique. Plan de cours. Titre : Élément de programmation.

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

SQL Server Installation Center et SQL Server Management Studio

Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1

WORKSHOP OBIEE 11g (version ) PRE-REQUIS:

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Installation d un manuel numérique 2.0

Sélection du contrôleur

UE Programmation Impérative Licence 2ème Année

1.1 L EXPLORATEUR WINDOWS

1/24. I passer d un problème exprimé en français à la réalisation d un. I expressions arithmétiques. I structures de contrôle (tests, boucles)

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java

Conception de circuits numériques et architecture des ordinateurs

I00 Éléments d architecture

Procédure d installation d AMESim 4.3.0

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Installer Windows 8 depuis une clé USB

CSI351 Systèmes d exploitation Instructions pour rouler Linux avec Virtual PC dans la salle de labo 2052

Documentation d information technique spécifique Education. PGI Open Line PRO

IN Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C

Clé USB. Quel type de données peut contenir une clé USB?

TwinCAT 3 C++ Création de modules C++ sous TwinCAT 3 VERSION : 1.0 / PH

UE C avancé cours 1: introduction et révisions

Sauvegarde d'une base de données SQL Server Express 2005

Cours Programmation Système

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INSTALLER LA DERNIERE VERSION DE SECURITOO PC

Mise en route et support Envision 10 SQL server (Avril 2015) A l'intention de l'administrateur SQL Server et de l administrateur Envision

Sommaire. Promo 39 B WINDOWS 2003 SERVER PART 1

Bases de programmation. Cours 5. Structurer les données

Utilisation de l outil lié à MBKSTR 9

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

Permis de conduire info

Programmation en langage C d un µcontrôleur PIC à l aide du compilateur C-CCS Sommaire

Chapitre 1 L interface de Windows 7 9

INF111. Initiation à la programmation impérative en C amini/cours/l1/inf111/ Massih-Reza Amini

Vodafone Mobile Connect

COMMUNICATION ENTRE DEUX ORDINATEURS PAR LASER MODULE EN CODE MORSE OU BINAIRE.

Le serveur web Windows Home Server 2011

Organiser le disque dur Dossiers Fichiers

Création d installateurs pour Windows avec InnoSetup

IV- Comment fonctionne un ordinateur?

GESTION DE L'ORDINATEUR

Ladibug TM 2.0 Logiciel de présentation visuel d'image Manuel de l utilisateur - Français

AUVRAY Clément (168187) HOMBERGER Alexandre (186897) GLADE. Langages, outils et méthodes pour la programmation avancée Page 1 sur 12

Cours de Programmation 2

Introduction à l algorithmique et à la programmation M1102 CM n 3

Remise à niveau d un programme JAVA du domaine public

Leçon 1 : Les principaux composants d un ordinateur

Informations sur l utilisation du webmail du CNRS. Webmail du CNRS. Manuel Utilisateur

Algorithmique et Programmation, IMA

SCL LOGICIEL DE CONTROL

Algorithmique & Langage C IUT GEII S1. Notes de cours (première partie) cours_algo_lgc1.17.odp. Licence

PACK ADSL WIFI. Configurer ma connexion ADSL avec Modem/Routeur Sagem 1400W

Configuration de Virtual Server 2005 R2

Introduction à MATLAB R

Notions de Langage C

Séquencer une application

Manuel de l utilisateur

Installation d un ordinateur avec reprise des données

Mes documents Sauvegardés

SoMachine. Solution logicielle pour votre architecture Machine Atelier de découverte. SoMachine

I. QU'EST-CE QU'UN ORDINATEUR? Un ordinateur est relié à plein de périphériques

Utiliser Dev-C++ .1Installation de Dev-C++ Table des matières

CMS Modules Dynamiques - Manuel Utilisateur

Espace pro. Installation des composants avec Firefox. Pour. Windows XP Vista en 32 et 64 bits Windows 7 en 32 et 64 bits

KBC Securities Trader

Studio. HERITIER Emmanuelle PERSYN Elodie. SCHMUTZ Amandine SCHWEITZER Guillaume

CQP 112 Introduc/on à la programma/on. Thème 2 : Architecture d un système informa/que. Département d informa/que

Éléments d'architecture des ordinateurs

2. Cliquez Contact Directory of Public Administration. 5. Tapez le mot de passe - Hello (pour OFPA). Changez le mot de passe en cas de

Projet de développement

Document de formation pour une solution complète d automatisation Totally Integrated Automation (T I A) MODULE A5 Programmation de la CPU 314C-2DP

Introduction à l informatique en BCPST

Notes du cours 4M056 Programmation en C et C++ Vincent Lemaire et Damien Simon

Emporter Windows XP sur une clé USB

Guide d'installation d'esprit Version 2014 R2

Connexion à SQL server

Transcription:

Analyse et programmation 1 Introduction du langage C Introduction au langage C Objectif de ce cours Découvrir le langage C Son histoire. Ses forces. Ses faiblesses. Montrer comment créer un programme. Comment écrire un programme. Comment le faire fonctionner. Analyser l intérêt de cet apprentissage. Analyse et programmation 1 - Introduction du langage C 1 1

Rappel Qu est ce qu un programme Pour l utilisateur Un programme doit rendre des services. Il doit répondre aux commandes de l utilisateur. Il permet de créer, transformer et enregistrer de l information. Exemple : le programme Bloc-notes (notepad.exe) Taper un texte dans un éditeur : création. Impression du texte : transformation. Sauvegarde dans un fichier : enregistrement. Analyse et programmation 1 - Introduction du langage C 2 Rappel Qu est ce qu un programme Pour la CPU Un programme est une suite de nombres, représentés en binaire, et circulant sous forme électrique. Certains nombres sont des numéros d instruction. D autres nombres sont des opérandes. Exemple de programme Le bloc notes (notepad.exe) L outil DOS «debug» procède à la lecture du fichier. Ensuite, il affiche le code en LANGAGE MACHINE et sa traduction symbolique (assembleur), répartie suivant les Colonnes ADRESSE CONTENU INSTR. OPERANDES C:\>debug C:\Windows\Notepad.exe -u 15B0:0000 0E PUSH CS 15B0:0001 1F POP DS 15B0:0002 BA0E00 MOV DX,000E 15B0:0005 B409 MOV AH,09 15B0:0007 CD21 INT 21 15B0:0009 B8014C MOV AX,4C01 15B0:000C CD21 INT 21 15B0:000E 54 PUSH SP 15B0:000F 000F 68 DB 68 15B0:0010 69 DB 69 15B0:0011 7320 JNB 0033 15B0:0013 7072 JO 0087 15B0:0015 6F DB 6F 15B0:0016 67 DB 67 15B0:0017 7261 JB 007A 15B0:0019 6D DB 6D 15B0:001A 206361 AND [BP+DI+61],AH Analyse et programmation 1 - Introduction du langage C 3 2

Rappel Mission du programmeur : créer les programmes Le programmeur doit créer la suite de nombres Qui représente la séquence des opérations à effectuer. Cette séquence doit réaliser les fonctions souhaitées par l utilisateur. Problèmes Les instructions de la CPU sont très élémentaires. La programmation d un calcul mathématique tout simple est déjà très compliquée. La création d applications réelles selon cette approche semble donc très difficile. Absence de portabilité Les numéros d instruction sont spécifiques à chaque microprocesseur. Un programme écrit pour un microprocesseur devrait être complètement réécrit pour être réutilisé avec un autre. Analyse et programmation 1 - Introduction du langage C 4 Rappel Mission du programmeur : créer les programmes C:\>debug C:\Windows\Notepad.exe -u 15B0:0000 0E PUSH CS 15B0:0001 1F POP DS 15B0:0002 BA0E00 MOV DX,000E 15B0:0005 B409 MOV AH,09 15B0:0007 CD21 INT 21 15B0:0009 B8014C MOV AX,4C01 15B0:000C CD21 INT 21 15B0:000E 54 PUSH SP 15B0:000F 68 DB 68 15B0:0010 69 DB 69 15B0:0011 7320 JNB 0033 15B0:0013 7072 JO 0087 15B0:0015 6F DB 6F 15B0:0016 67 DB 67 15B0:0017 7261 JB 007A 15B0:0019 6D DB 6D 15B0:001A 206361 AND [BP+DI+61],AH Analyse et programmation 1 - Introduction du langage C 5 3

Pourquoi le langage C? Motivations de départ Le langage C a été inventé : Par les concepteurs du système stème d exploitation Unix en 1972. Pour faciliter leur travail de programmation. Principes du langage C Un programme C est écrit sous une forme symbolique. On utilise des expressions symboliques comme «x = y + 5;» Il est constitué d un texte humainement intelligible. Les mots utilisés sont issus de la langue anglaise. Il n est pas écrit pour un microprocesseur particulier. Contrairement au langage machine. Analyse et programmation 1 - Introduction du langage C 6 Pourquoi le langage C? Avantages Meilleure facilité de programmation Ce langage permet de créer des applications de complexité réelle. Permet de programmer sans connaître le langage machine de la CPU. Cependant, ce langage reste assez proche du matériel Utilise la notion d adresse. &x, *px Possède des opérations permettant de manipuler le binaire champs de bits, <<, >>, &,, ^ Permet l écriture hexadécimale et octale quand c est nécessaire. 0xB0B0, \034 Très efficace à l exécution. Portabilité Un programme en langage C peut être exploité sur tout type de CPU Moyennant cependant quelques précautions! Analyse et programmation 1 - Introduction du langage C 7 4

Un mini-exemple commenté Le programme Hello World! inclusion des fichiers «stdio.h» et «stdlib.h» qui définissent «printf» et «system» début du programme. «main» veut dire principal en anglais. L accolade ouvrante { marque le début d un groupe d instructions. #include <stdio.h> #include <stdlib.h> int main() { printf("hello World!\n"); system("pause"); return 0; } printf affiche un texte ou une valeur à l écran. «\n» écrit un saut de ligne. Cette instruction attend qu une touche soit pressée L accolade fermante } marque la fin d un groupe d instructions. «return» termine l exécution de main. Elle renvoie souvent une valeur, ici 0. Analyse et programmation 1 - Introduction du langage C 8 Un mini-exemple commenté Analyse Un programme en langage C Se déroule ou s exécute séquentiellement n est pas directement exécutable par la CPU. #include <stdio.h> #include <stdlib.h> int main() { printf("hello World!\n"); system("pause"); return 0; } Analyse et programmation 1 - Introduction du langage C 9 5

Comment rendre exécutable un programme C? Une étape de traduction Pour devenir exécutable, un programme en langage C Doit être traduit en langage machine. Cette opération est fastidieuse et très répétitive. Heureusement, elle est faite automatiquement par un programme. La traduction en langage machine Cette opération s appelle la «compilation». Elle est faite par un programme appelé «Compilateur» C est une opération assez complexe en plusieurs étapes. Au cours de la compilation Le code source en langage C est vérifié. Les erreurs grossières sont signalées au programmeur. Si tout a bien marché le résultat est un nouveau fichier. Ce fichier est un programme en langage machine, exécutable. Analyse et programmation 1 - Introduction du langage C 10 Comment rendre exécutable un programme C? La compilation le principe Fichier exe Fichier main.c #include <stdio.h> #include <stdlib.h> int main() { printf("hello World!\n"); system("pause"); return 0; } Processus de Compilation (programmes) 4E 00 70 00 45 00 6E 00 63 00 6F 00 64 00 69 00 6E 00 67 00 44 00 69 00 61 00 6C 00 6F 00 67 00 00 00 00 00 74 00 78 00-74 00 00 00 2A 00 2E 00 74 00 78 00 74 00 00 00 52 65 67 69 73 74 65 Rapport d erreurs `badword' undeclared (first use this function) Analyse et programmation 1 - Introduction du langage C 11 6

Comment rendre exécutable un programme C? Modèle du cycle de développement Fichier main.c Edition / Correction du code source #include <stdio.h> #include <stdlib.h> int main() { printf("hello World!\n"); system("pause"); return 0; } Fichier exe Processus de compilation 4E 00 70 00 45 00 6E 00 63 00 6F 00 64 00 69 00 6E 00 67 00 44 00 69 00 61 00 6C 00 6F 00 67 00 00 00 00 00 74 00 78 00-74 00 00 00 2A 00 2E 00 74 00 78 00 74 00 00 00 52 65 67 69 73 74 65 Test Noter les anomalies Analyse et programmation 1 - Introduction du langage C 12 La compilation, un processus complexe Déroulement en 3 phases main.c stdlib.h stdio.h 1. Préprocesseur de texte Code source complet Processus de compilation 2. Compilateur main.o crt.lib 3. Editeur de liens Exécutable complet Analyse et programmation 1 - Introduction du langage C 13 7

La compilation, un processus complexe Les erreurs pouvant survenir main.c stdlib.h stdio.h 1. Préprocesseur de texte Directive préprocesseur invalide (#...) Fichier à inclure manquant Code source complet 2. Compilateur main.o Erreurs de syntaxe du programme. Identificateurs non définis. crt.lib 3. Editeur de liens Erreurs de liaison : fonction utilisée manquante dans le programme et dans les bibliothèques. Exécutable complet Analyse et programmation 1 - Introduction du langage C 14 Différents types de programmes Pouvant tous être créés avec le langage C Avec interface utilisateur Les applications graphiques Toutes les applications Windows : bloc note, navigateur Web Les applications en mode console L utilisateur tape une commande pour donner un ordre. Très utilisé lorsqu un ordinateur ne gère que le mode caractère. Sans interface utilisateur Services Services Programmes non visibles de Windows. Exemple : gestion du réseau. Informatique embarquée Programmes chargés dans des microcontrôleurs. Analyse et programmation 1 - Introduction du langage C 15 8

Différents types de programmes Les applications graphiques Gérée avec des menus Et des barres d outil L utilisateur peut saisir du texte et aussi cliquer un peu partout, tout ça en même temps Analyse et programmation 1 - Introduction du langage C 16 Différents types de programmes Les applications en mode console Le programme «cmd.exe» permet de taper des commandes DOS Et de voir le résultat Une application console peut aussi guider l utilisateur avec un menu. On peut les basculer en plein écran (alt + Entrée) Analyse et programmation 1 - Introduction du langage C 17 9

Différents types de programmes Les applications embarquées Pour quoi faire? Elles gèrent des entrées / sorties physiques. Par exemple emple sur des machines automatisées Analyse et programmation 1 - Introduction du langage C 18 Différents types de programmes Les applications embarquées Comment les créer? Elles sont développées avec des outils dédiés. Logiciel pour la programmation du micro contrôleur en langage C, à installer sur un PC. Boîtier électronique spécial pour le développement. Pour relier le microcontrôleur au PC Carte électronique avec un microcontrôleur adapté aux applications embarquées. Câbles de liaison et alimentation électrique Analyse et programmation 1 - Introduction du langage C 19 10

Différents types de programmes Quel type d applications allons nous créer? Durant les travaux de laboratoire Nous créerons des applications «Console» (ligne de commande) Motivations Ce type d applications est le plus facile à créer. Il est universel, il existe dans tous les environnements. Même possible sur une majorité de micro contrôleurs. Exige moins de connaissance pour pouvoir commencer. Permet de se focaliser sur l apprentissage des fondements de l analyse et de la programmation. Les principes appris restent valables pour tous les types d application. Analyse et programmation 1 - Introduction du langage C 20 Comment exécuter un programme compilé? Démarrage d une application Avec un système d exploitation Tous les systèmes stèmes d exploitation offrent des moyens pour démarrer un programme Par exemple, sous Windows, il suffit de double cliquer sur le fichier exécutable. Sous DOS, il faut taper le nom du programme. Sur un microcontrôleur (informatique embarquée) L outil de développement spécifique utilisé offre des fonctions pour Envoyer le programme dans la mémoire du micro contrôleur. Démarrer son exécution. Analyse et programmation 1 - Introduction du langage C 21 11

Les outils de développement Un vaste choix Le langage C est largement utilisé dans l industrie. Un très grand nombre d outils sont disponibles. On distingue 2 familles principales Les outils en ligne de commande Le code source doit être créé avec un éditeur de texte séparé. Il doit ensuite être enregistré dans un fichier. Ce fichier est compilé en tapant une ligne de commande cc -o programme1 main.c Les environnements de développement intégrés (IDE) L éditeur, le compilateur et d autres outils sont intégrés. Ils sont accessibles très facilement dans les menus d un environnement graphique. Certains outils sont chers, d autres sont gratuits. Analyse et programmation 1 - Introduction du langage C 22 Les outils de développement Lequel choisir Recherche sur internet Des dizaines d outils de programmation pour le C gratuits. Des centaines d outils payants. Beaucoup d outils sans IDE. Outils très connus et gratuits GNU CC : compilateurs open source. Intégré dans de nombreux IDE. Visual Studio C++: environnement professionnel très complet. Choix retenu Microsoft Visual C++ 2008 Analyse et programmation 1 - Introduction du langage C 23 12

Visual Studio Un IDE professionnel complet Un bouton pour compiler et exécuter le programme Liste des fichiers du projet Editeur de code source C. Il colorie pour faire plus joli. Une fenêtre avec les erreurs de compilation Analyse et programmation 1 - Introduction du langage C 24 Petite histoire du langage C De l apparition à la normalisation 1950 : Fortran -> 1958 Algol -> 1963 CPL -> 1966 BCPL 1969 : Langage B, BCPL optimisé par Ken Thompson. 1972 : Langage C, par Brian Kernighan et Dennis Ritchie. 1983 : Extension orientée objet C++, par Bjarne Stroustrup 1989 : Normalisation ANSI-C, appelée C89 1990 : Normalisation ISO, identique à C89, appelée C90 1999 : Nouvelle normalisation ISO, appelée C99 2005 : Révision de la norme C99 Pour en savoir plus http://en.wikipedia.org/wiki/c_programming_language#ansi_c_and_iso_c Analyse et programmation 1 - Introduction du langage C 25 13

Petite histoire du langage C Les descendants Informatique industrielle -Rapide, efficace -Proche de la machine -Plus technique, plus délicat C K&R 1972 ANSI-C 1989 C++ 83 Orienté objet Génie logiciel -Meilleure abstraction. -Applications + complexes. -Interface graphique. -plus lent, plus lourd. C 99 Java 1995 C# 2001 Le programme est plus performant WRITE FAST PROGRAM Le programme est plus vite écrit WRITE PROGRAM FAST Analyse et programmation 1 - Introduction du langage C 26 Petite histoire du langage C Très largement répandu aujourd hui Pour toutes les applications embarquées La majorité des microcontrôleurs rs ont un compilateur C. Le C++ est aussi disponible pour les microcontrôleurs les plus performants. Dans le C++ Le C++ est une extension du langage C. Les principales notions acquises restent valables. Un grand nombre d applications PC actuelles sont écrites en C++. Dans le langage Java et C# Ces langages s appuient pour une grande part sur la syntaxe C. La transition de C vers Java ou C# est donc facilitée. Analyse et programmation 1 - Introduction du langage C 27 14

Les faiblesses du langage C Il n en manque pas C est un langage ancien Pensé à une époque où les applications étaient toute petites. Premier système Unix : fonctionnait avec 8 ko de RAM! Syntaxe prévue pour permettre une compilation facile. Grande liberté : autorise des constructions bizarres Très efficaces à l exécution. Difficiles à lire et à comprendre pour le programmeur. Sources de nombreuses erreurs. Détecte peu d erreurs de construction de programme Contre partie de la liberté offerte. Limites d utilisation Pour les petites applications Notamment lorsque l efficacité est critique Pour les applications plus complexes, aller vers C++. Analyse et programmation 1 - Introduction du langage C 28 Pourquoi apprendre le langage C aujourd hui Motivations du choix Valeur ajoutée pour les étudiants Le langage C est très largement utilisé dans l industrie. Utilisé dans les laboratoires de plusieurs filières à la HEIG. Vertus pédagogiques Amène une compréhension approfondie du fonctionnement d un ordinateur et d un programme. Les acquis restent valable pour C++, Java, C# Il est plus facile de passer de C à C++, Java, ou C# que l inverse. Limitations Les compilateurs C imposent peu de rigueur Il en faut cependant beaucoup pour atteindre un résultat fonctionnel. Demande plus d efforts de compréhension aux étudiants. La correction des erreurs exige souvent la compréhension de ce qui se passe à bas niveau dans l ordinateur. Analyse et programmation 1 - Introduction du langage C 29 15

Qu avons nous appris? Le langage C Est un langage textuel. t el Facilite la programmation par comparaison au langage machine. Permet de faire des programmes très performants. Est très utilisé dans l informatique embarquée. Doit être compilé en langage machine pour être exécutable. Les IDE facilitent grandement le cycle «édition, compilation, test» Base syntaxique du C++, Java, et C#. Chaque langage a un domaine d utilisation de prédilection. Analyse et programmation 1 - Introduction du langage C 30 Vos questions Analyse et programmation 1 - Introduction du langage C 31 16

Analyse et programmation 1 - Introduction du langage C 32 17