Chapitre 1 Introduction

Save this PDF as:
 WORD  PNG  TXT  JPG

Dimension: px
Commencer à balayer dès la page:

Download "Chapitre 1 Introduction"

Transcription

1 Chapitre 1 Introduction Jean Privat Université du Québec à Montréal INF7330 Construction de logiciels Diplôme d études supérieures spécialisées en systèmes embarqués Automne 2012 Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

2 Construction de logiciels Objectifs du cours Mettre-à-jour les connaissances en construction de logiciel Savoir programmer en C avancé Savoir utiliser des outils liés au développement de logiciels Difficultés du cours Programmation Ligne de commande Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

3 Plan 1 Construction de logiciels 2 Chaîne d exécution 3 Le langage C 4 Compiler en C 5 Écriture de programmes en C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

4 Plan 1 Construction de logiciels 2 Chaîne d exécution 3 Le langage C 4 Compiler en C 5 Écriture de programmes en C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

5 Exécution d un programme Données Idée Code source Exécution Programmeur «Écriture» «Traitement» Ordinateur Résultats Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

6 Composantes Programmeur Être humain qui développe des logiciels Langage de programmation Notation artificielle destinée à exprimer des algorithmes et produire des programmes Programme Ensemble d instructions (ou de règles) exécutable par un ordinateur Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

7 Programmation Processus itératif Spécification et conception Édition du code source Compilation Tests, déboguage et profilage Coordination avec le reste de l équipe et les utilisateurs Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

8 Qualité logicielle Génie logiciel Science de l ingénieur destinée à produire mieux des logiciels mieux Critères Correction (capacité fonctionnelle) Robustesse (fiabilité) Maintenabilité Portabilité Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

9 Styles de programmation Nombreux paradigmes et variations Impérative (structurée, procédurale) Fonctionnelle Orienté objet (à classe, à prototype) Déclarative (logique, contraintes, règles) Etc. Langages Chaque langage est plus-ou-moins adapté/dédié à un/plusieurs paradigmes Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

10 Plan 1 Construction de logiciels 2 Chaîne d exécution 3 Le langage C 4 Compiler en C 5 Écriture de programmes en C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

11 Compilateur Programme qui transforme du code source en du code exécutable par une machine La compilation à lieu avant l exécution FOR A = 1 TO 9 B = B + A NEXT A Code source Compilateur Exécutable Données Exécutable Résultats Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

12 Compilateurs Compilateurs traditionnels C Java Compilateurs source-à-source Préprocesseur Générateurs de code Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

13 Interpréteur Programme qui prends un programme en entrée et l exécute directement Souvent interactifs Souvent réflexifs Code source FOR A = 1 TO 9 B = B + A NEXT A Interpréteur Résultats Données Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

14 Interpréteurs Interpréteurs traditionnels Ruby Shells Machines virtuelles Java Émulateurs Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

15 Plan 1 Construction de logiciels 2 Chaîne d exécution 3 Le langage C 4 Compiler en C 5 Écriture de programmes en C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

16 Historique du langage C 1972 : Début du langage C (Ritchie et Kernighan) 1978 The C Programming Language, (Kernighan et Ritchie) : C K&R 1989 Normalisation ANSI : C89 (ou C ANSI) 1999 Normalisation ISO : C Mise-à-jour : C11 (ou C1x) Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

17 Caractéristiques du langage C Langage compilé Statiquement typé «Relativement» fortement typé «Haut» niveau Gestion manuelle de la mémoire Rapide Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

18 Popularité du langage C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

19 Utilisation du langage C Toujours autant utilisé Proche du système (système d exploitation & matériel) «Relativement» portable Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

20 Programmation impérative Ordres Séquences d instructions Effets de bords État du système pris en compte et modifiable Affectation Entrée/sorties Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

21 Mon premier programme en C Fichier hello.c #include <s t d i o. h> / This program p r i n t s H e l l o world / i n t main ( i n t argc, char argv ) { p r i n t f ( " H e l l o world \n " ) ; return 0 ; } Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

22 Plan 1 Construction de logiciels 2 Chaîne d exécution 3 Le langage C 4 Compiler en C 5 Écriture de programmes en C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

23 Compiler le programme Utiliser un compilateur (gcc) $ gcc o h e l l o h e l l o. c $. / h e l l o H e l l o world Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

24 Travail du compilateur Objectif général Traduire le programme C en le même programme mais exécutable $ ls l hello.c hello Programmes valides programmes corrects Le compilateur ne compile pas les programmes écrits en C invalide Les erreurs rapportées servent à rendre le programme valide Attention : un programme qui compile n est pas nécessairement un programme correct Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

25 Diagnostiques du compilateur Demander au compilateur de l aide Options W et Wall Liste des endroits où le C est valide mais louche Utiliser un outil de diagnostique statique $ splint hello.c Va plus loin qu un compilateur Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

26 Compilateur C *.h fichier.c *.o préprocesseur compilateur C éditeur de liens assembleur fichier.o programme.exe Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

27 Compilateur C Préprocesseur Traite les directives (lignes qui commencent par #) gcc E hello.c less Compilateur (vrai) Traduit le C en assembleur gcc S hello.c ; vi hello. s Assembleur Transforme l assembleur en code machine gcc c hello.c ; ls l hello.o Éditeur de liens Réunit les fichier.o (et d autres) pour former un exécutable Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

28 Compilation (vraie) Plusieurs façon de traduire En fonction des compilateur, des versions, des plate-formes, des options d optimisation, l assembleur généré est différent $ gcc S o h e l l o 1. s h e l l o. c $ gcc O2 S o h e l l o 2. s h e l l o. c $ c l a n g S o h e l l o 3. s h e l l o. c $ l s l h e l l o 1. s h e l l o 2. s h e l l o 3. s Toutes traduisent le même programme Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

29 Plan 1 Construction de logiciels 2 Chaîne d exécution 3 Le langage C 4 Compiler en C 5 Écriture de programmes en C Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

30 Convention d écriture Une seule instruction par ligne Utiliser des identificateur significatifs (pour un programmeur C) Indenter le code Mise-en page uniforme Toujours commenter mais commenter efficacement Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

31 Séparateurs et commentaires Les caractères espace, tabulation et retour-chariot séparent les entités lexicales Les commentaires sont délimités par / et / Le point-virgule termine une instruction ou une déclaration. La virgule sépare les éléments d une liste (dont les paramètres). Les accolades délimitent les blocs ou les listes d initialisation Les crochets servent aux tableaux Les parenthèses servent : à la priorité ; aux appels de fonction ; à la coercition. Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

32 Identificateurs Séquence de lettres, chiffres et de soulignés (symbole _) Le premier caractère est une lettre ou un souligné Sensible à la case (majuscule/minuscule) Attention : les identificateurs trop long peuvent être coupés Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

33 Mots réservés auto, auto, break, case, char, const, continue, default, do, double, else, enum, extern return, float, for, goto, if, int, long, register, short, signed, sizeof, static, struct, switch, typedef, union, unsigned, void, volatile, while Jean Privat (UQAM) 01 Introduction INF7330 Automne / 33

La programmation Impérative par le Langage C

La programmation Impérative par le Langage C La programmation Impérative par le Langage C 1. Introduction 1.1 Qu est-ce que la programmation impérative? Un programme est constitué de plusieurs lignes d instructions. Chaque instruction permet d effectuer

Plus en détail

Introduction au langage C

Introduction au langage C Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les

Plus en détail

Introduction au langage C - types et variables

Introduction au langage C - types et variables Chapitre 2 Introduction au langage C - types et variables 1 Le Langage C Le langage C est un langage de bas niveau dans le sens où il permet l accès à des données que manipulent les ordinateurs (bits,

Plus en détail

Java : Programmation Impérative

Java : Programmation Impérative 1 Java : Programmation Impérative Résumé du cours précédent (I11) Paradigme impératif Algorithmique simple Découpage fonctionnel Qu est-ce qu un programme informatique? / un langage de programmation? /

Plus en détail

Algorithmique - Programmation 1. Cours 1

Algorithmique - Programmation 1. Cours 1 Algorithmique - Programmation 1 Cours 1 Université Henri Poincaré CESS Epinal Automne 2008 1/ 24 Plan Introduction Introduction A propos d AP1 Quelques concepts de base Premiers pas avec Caml Le branchement

Plus en détail

Procédure. Introduction au langage C. Cours 3. Procédures. Retour au PGCD PGCD / 2. Version 2. Comment calculer le PGCD de trois nombres?

Procédure. Introduction au langage C. Cours 3. Procédures. Retour au PGCD PGCD / 2. Version 2. Comment calculer le PGCD de trois nombres? Cours C-3 1 Cours C-3 2 Procédure Introduction au langage C Cours 3 Procédures Jean-Jacques Girardot / Marc Roelens Septembre 2007 Construction du langage qui permet de désigner par un nom une portion

Plus en détail

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS

LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS LE LANGAGE C ADAPTÉ AU MICROCONTRÔLEURS 1. PRÉSENTATION. Le langage C a fait son apparition en 1972 pour le développement du système d exploitation Unix. Il est devenu un standard de la norme ANSI en 1983.

Plus en détail

Langage C notes de cours

Langage C notes de cours Langage C notes de cours K. El Omari IUT GTE, UPPA 1 Présentation générale 1.1 Introduction La programmation par le langage C (ainsi que par d autres langages dit compilés) est basée sur : 1. la rédaction

Plus en détail

Les bases de la programmation en C

Les bases de la programmation en C Chapitre 1 Les bases de la programmation en C 1 Historique Le C a été conçu en 1972 par Dennis Richie et Ken Thompson, chercheurs aux Bell Labs, afin de développer un système d exploitation UNIX sur un

Plus en détail

Langages de haut niveau

Langages de haut niveau Langages de haut niveau Introduction Un assembleur est un programme traduisant en code machine un programme écrit à l'aide des mnémoniques Les langages d'assemblage représentent une deuxième génération

Plus en détail

Principes de la programmation impérative

Principes de la programmation impérative Séquence d instructions Variables et types Types élaborés Procédures, arguments Gestion de la mémoire Langage compilé, interprété Principes de la programmation impérative Séquence d instructions Variables

Plus en détail

BAT 4 Polytech Nice. Le langage C#: Concepts fondamentaux. BAT 4 Introduction programmation C# page 1

BAT 4 Polytech Nice. Le langage C#: Concepts fondamentaux. BAT 4 Introduction programmation C# page 1 BAT 4 Polytech Nice Le langage C#: Concepts fondamentaux BAT 4 Introduction programmation C# page 1 Le langage C#: Plan Plan de séance Comprendre les éléments fondamentaux Types primitifs Variables Constantes

Plus en détail

INTRODUCTION AUX LANGAGES...

INTRODUCTION AUX LANGAGES... C Ch 1 Introduction I. INTRODUCTION AUX LANGAGES... 1 A. NOTION DE PROGRAMME... 1 B. LANGAGES DE PROGRAMMATION... 1 C. FAMILLES DE LANGAGES DE PROGRAMMATION... 2 1. Générations de langages... 2 2. Paradigmes

Plus en détail

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali

C.P.G.E - Meknès Langage Python 3 Haouati Abdelali 3. Langage Python 3 2 a. Introduction Présentation du langage Python : Python est un langage portable, dynamique, extensible, gratuit, qui permet (sans l imposer) une approche modulaire et orientée objet

Plus en détail

Langage C. E. Boucharé

Langage C. E. Boucharé Langage C E. Boucharé Table des Matières Introduction.............................................................................. 1 Chapitre 1. Les types de données de C....................................................

Plus en détail

Chapitre 1 Introduction aux compilateurs (et aux interpréteurs)

Chapitre 1 Introduction aux compilateurs (et aux interpréteurs) Chapitre 1 Introduction aux compilateurs (et aux interpréteurs) Jean Privat Université du Québec à Montréal INF5000 Théorie et construction des compilateurs Automne 2013 Jean Privat (UQAM) 01 Introduction

Plus en détail

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr

CCI - Initiation à Java. E.Coquery emmanuel.coquery@liris.cnrs.fr CCI - Initiation à Java E.Coquery emmanuel.coquery@liris.cnrs.fr Présentation du langage Outline 1 Présentation du langage 2 Types de données primitifs 3 Objets Présentation du langage Un langage orienté

Plus en détail

Programmation Répartie - Langage C

Programmation Répartie - Langage C frederic.guinand@univ-lehavre.fr IUT Le Havre Plan les bases quelques rappels de langage C les structures de contrôle conditionnelles les structures de contrôle itératives les tableaux les pointeurs les

Plus en détail

CHAPITRE 1 : Introduction. Historique du langage C. Caractéristiques ristiques du langage C. Différentes phases de la programmation en C

CHAPITRE 1 : Introduction. Historique du langage C. Caractéristiques ristiques du langage C. Différentes phases de la programmation en C Année Universitaire 2006/2007 CHAPITRE 1 : Introduction Historique du langage C Caractéristiques ristiques du langage C Différentes phases de la programmation en C 1 CHAPITRE 2 : Notions de base Premier

Plus en détail

Introduction au langage C

Introduction au langage C Organisation du cours Introduction au langage C Premier cours Notions générales Aurélien Max aurelien.max@limsi.fr 12 séances de cours de 1h: mercredi 16-17h, salle A203 12 séances de TD de 1h: mercredi

Plus en détail

Normes de programmation en langage C++

Normes de programmation en langage C++ Normes de programmation en langage C++ Bakhtouchi Abdelghani EMP, Bordj El Bahri bakhtouchi@yahoo.fr ANNEE: 2009/2010 Sommaire 1. Introduction.. 1 2. Présentation.. 1 2.1. Format des fichiers source. 1

Plus en détail

Système et Programmation (en C)

Système et Programmation (en C) Système et Programmation (en C) ENSTA - TC 1ère année François Pessaux U2IS 2015-2016 francois.pessaux @ ensta-paristech.fr Introduction François Pessaux IN102 Système et Programmation (en C) 2/31 But

Plus en détail

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

UE C avancé cours 1: introduction et révisions Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple

Plus en détail

Le langage C. 70's Début du langage C (Ritchie et Kernighan), Origine liée au système UNIX (90% écrit en C)

Le langage C. 70's Début du langage C (Ritchie et Kernighan), Origine liée au système UNIX (90% écrit en C) Le langage C 70's Début du langage C (Ritchie et Kernighan), Origine liée au système UNIX (90% écrit en C) 1978 ``The C Programming Language``, (Kernighan et Ritchie), --> on fait référence à cette première

Plus en détail

TP Interface graphique et C++ numéro 1

TP Interface graphique et C++ numéro 1 TP Interface graphique et C++ numéro 1 Master IGC - 1 re année année 2010-2011 Ce premier TP a pour objectif de vous familiariser avec le compilateur C++, les entréessorties du langage et l utilisation

Plus en détail

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3.

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

PROGRAMMATION EN LANGAGE C

PROGRAMMATION EN LANGAGE C 2014/2015 Florence Levé - Université de Picardie Jules Verne 1 PROGRAMMATION EN LANGAGE C Licence Informatique 2 ème année 2014/2015 Florence Levé - Université de Picardie Jules Verne 2 Présentation du

Plus en détail

Le Langage C. 1- Etape de mise en place d un programme exécutable

Le Langage C. 1- Etape de mise en place d un programme exécutable Le Langage C Le langage C a été crée en 1972 par Denis Ritchie avec comme objectif : écrire un système d exploitation (UNIX). Sa définition été réalisée en 1978 par Kernighan et Ritchie dans un livre intitulé

Plus en détail

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Entrainement Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2012-2013 (entrainement) durée 1h20 Tous documents et calculatrices autorisés. Le sujet comporte 5 pages Le temps approximatif ainsi que le barème

Plus en détail

LE LANGAGE C. Plan. Chapitre 2. Cours de Langage C Informatique Industrielle. Objectifs: Pré requis: AU:1997/1998. Introduire le langage C.

LE LANGAGE C. Plan. Chapitre 2. Cours de Langage C Informatique Industrielle. Objectifs: Pré requis: AU:1997/1998. Introduire le langage C. Chapitre 2 LE LANGAGE C Objectifs: Introduire le langage C. Pré requis: Algorithmique Plan I/ PRESENTATION DU LANGAGE C II/ STRUCTURE D'UN PROGRAMME C III/ LES CONCEPT FONDAMENTAUX DU LANGAGE C 1. Le jeu

Plus en détail

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes

ISMIN 1A Programmation 1 : Examen de programmation C. Réponses. Partie 1. Questions ouvertes ISMIN 1A Programmation 1 : Examen de programmation C Réponses Partie 1. Questions ouvertes 1. Soit la déclaration suivante, char tab[] = "". Que contient le tableau tab? Réponse : tab[0] = \0. tab est

Plus en détail

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte:

PLAN DU COURS ENTRÉE SORTIE FONCTION PRINTF. Fonction de la bibliothèque stdio.h. Affichage d'un texte: PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, Tableaux, opérateurs Entrées sorties de base Structures de contrôle Algorithmes de recherche Algorithmes de

Plus en détail

Décomposition d'un programme C

Décomposition d'un programme C Décomposition d'un programme C Un programme C est composé de plusieurs blocs. Chacun d'entre eux ayant un rôle particulier dans une ou plusieurs phases de la compilation ou de l'exécution: Exemple : Inclusions

Plus en détail

INF145 Programmation avancée et langage C MOTS RÉSERVÉS ET INSTRUCTIONS AU PRÉPROCESSEUR

INF145 Programmation avancée et langage C MOTS RÉSERVÉS ET INSTRUCTIONS AU PRÉPROCESSEUR Université du Québec (UQ) École de technologie supérieure Service des enseignements généraux Local B-2500-396-8938 Site Internet : http://www.seg.etsmtl.ca/inf115/ INF145 Programmation avancée et langage

Plus en détail

INF 2005 Programmation orientée objet avec C++ Texte 2

INF 2005 Programmation orientée objet avec C++ Texte 2 INF 2005 Programmation orientée objet avec C++ Texte 2 1. Mots clés du langage C++ et premiers pas... 2 1.1 Les mots clés du langage C++... 2 1.2 Familiarisation avec le langage... 3 2. Les entrées-sorties...

Plus en détail

CHAPITRE 3 : Types de base, Opérateurs et Expressions

CHAPITRE 3 : Types de base, Opérateurs et Expressions CHAPITRE 3 : Types de base, Opérateurs et Expressions 1. Types simples Un type définit l'ensemble des valeurs que peut prendre une variable, le nombre d'octets à réserver en mémoire et les opérateurs que

Plus en détail

Algorithmique et programmation : les bases (C) Corrigé

Algorithmique et programmation : les bases (C) Corrigé PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours C, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage C des éléments vus en algorithmique. Table des matières 1 Pourquoi

Plus en détail

Avant-propos. 1. Introduction

Avant-propos. 1. Introduction Avant-propos Les sections ou sous-sections marquées d un astérisque (*) ne font pas partie de la matière du cours IFT1969. Elles sont destinées à définir complètement le langage C (ANSI-C99) et à en préciser

Plus en détail

Premiers exemples de traitements

Premiers exemples de traitements #include #include Premiers exemples de traitements void main() float b(0.0); float c(0.0); float delta(0.0); cin >> b >> c; delta = b*b - 4*c; if (delta < 0.0) cout

Plus en détail

Sommaire. Introduction à la compilation. Notion de compilation. Notion de compilation. Notion de compilation. Notion de compilation

Sommaire. Introduction à la compilation. Notion de compilation. Notion de compilation. Notion de compilation. Notion de compilation Introduction à la compilation A. DARGHAM Faculté des Sciences Oujda Sommaire Environnement d un compilateur Schéma global d un compilateur Caractéristiques d un bon compilateur Définition Un compilateur

Plus en détail

5.2. Introduction à la programmation en assembleur et en langage machine

5.2. Introduction à la programmation en assembleur et en langage machine 5. Couche conventionnelle. Introduction à la programmation en assembleur et en langage machine. Instructions - types, formats, champs; types d'adressage et utilisation des registres. Branchements, sauts

Plus en détail

BAT 4 Polytech Nice. Cours Environnement Logiciel puis Internet, Services et Réseaux en BAT4. Vérification des effectifs, Appel Sur EDT

BAT 4 Polytech Nice. Cours Environnement Logiciel puis Internet, Services et Réseaux en BAT4. Vérification des effectifs, Appel Sur EDT BAT 4 Polytech Nice Cours Environnement Logiciel puis Internet, Services et Réseaux en BAT4 Vérification des effectifs, Appel Sur EDT Une consigne : prenez des notes pendant les cours! Les supports ne

Plus en détail

Master Informatique Fondamentale - M1 Compilation

Master Informatique Fondamentale - M1 Compilation Master Informatique Fondamentale - M1 Compilation Systèmes de types Paul Feautrier ENS de Lyon Paul.Feautrier@ens-lyon.fr perso.ens-lyon.fr/paul.feautrier 8 février 2007 1 / 20 Système de types Un type

Plus en détail

3 Lien entre pointeurs et tableaux.

3 Lien entre pointeurs et tableaux. programme sont dit dynamiques. On se limite ici aux tableaux statiques à une seule dimension, analogue aux vecteurs manipulés en mathématiques. Ils se déclarent sous la forme : type_d_élément variable_tableau[taille];

Plus en détail

Programmation orientée objet TP 1 Prise en main de l environnement Java

Programmation orientée objet TP 1 Prise en main de l environnement Java Programmation orientée objet TP 1 L2 MPCIE Prise en main de l environnement Java Exercice 1 Nous désirons développer un programme pour la gestion (très simplifiée) d'un parc de véhicules destinés à la

Plus en détail

Règles d'écriture des programmes DIVERS. Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com

Règles d'écriture des programmes DIVERS. Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com Règles d'écriture des programmes DIVERS Copyright 2003 Exood4 Studios, Tous droits réservés www.exood4.com Table des matières 1 Les conventions d'écriture... 3 1.1 "Notation Hongroise" (Hungarian notation)...3

Plus en détail

1 Création de processus : primitive fork()

1 Création de processus : primitive fork() O r s a y Travaux Pratiques n o 2 : Synchronisation DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork() et synchronisation de

Plus en détail

Aide Mémoire - langage C

Aide Mémoire - langage C Université du Luxembourg 2005 2006 Aide Mémoire - langage C 1 Directives de préprocesseur inclusion de fichiers pour un fichier système : #include pour un fichier du répertoire courant

Plus en détail

IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot

IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot ESIEE 2011 2012 IN3T01 Programmation C TP 2 corrigé Jean-Claude Georges - Michel Landschoot PARTIE 1: LES FONCTIONS ET LES POINTEURS fichier fonctions.h #ifndef _FONCTION_H_ #define _FONCTION_H_ #include

Plus en détail

Structure d un programme et Compilation Notions de classe et d objet Syntaxe

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

Plus en détail

1 Notions de base 1.1 Structure d'un programme

1 Notions de base 1.1 Structure d'un programme 1 Notions de base 1.1 Structure d'un programme Le langage C++ contient le langage C : tout programme écrit en C à la norme ANSI doit pouvoir être compilé par un compilateur C++. C++ fait la diérence entre

Plus en détail

Cours d informatique. 1 ère année 2014 2015

Cours d informatique. 1 ère année 2014 2015 Cours d informatique en Langage C è 1 ère année 2014 2015 L informatique à l IOGS 1A : Langage C : apprentissage d un langage de programmation structuré 3 séances Matlab : analyse numérique 2A : Langage

Plus en détail

Bertrand Meyer. UConception et programmation orientées objet. T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t

Bertrand Meyer. UConception et programmation orientées objet. T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t UConception et programmation orientées objet Bertrand Meyer T r a d u i t d e l a n g l a i s p a r P i e r r e J o u v e l o t Groupe Eyrolles, 2000, pour le texte de la présente édition en langue française.

Plus en détail

Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur

Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Chapitre 1 Introduction à l organisation des ordinateurs et à l assembleur Jean Privat Université du Québec à Montréal INF217 Organisation des ordinateurs et assembleur Automne 21 Jean Privat (UQAM) 1

Plus en détail

GELE5343 Chapitre 2 : Révision de la programmation en C

GELE5343 Chapitre 2 : Révision de la programmation en C GELE5343 Chapitre 2 : Révision de la programmation en C Gabriel Cormier, Ph.D., ing. Université de Moncton Hiver 2013 Gabriel Cormier (UdeM) GELE5343 Chapitre 2 Hiver 2013 1 / 49 Introduction Contenu 1

Plus en détail

Le langage C. Université d Aix-Marseille Faculté des Sciences. Henri Garreta Département d Informatique & LIF

Le langage C. Université d Aix-Marseille Faculté des Sciences. Henri Garreta Département d Informatique & LIF Université d Aix-Marseille Faculté des Sciences Le langage C Licences Maths & Informatique Master Mathématiques Master CCI Henri Garreta Département d Informatique & LIF TABLE DES MATIÈRES TABLE DES MATIÈRES

Plus en détail

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 2 : Communication

DUT Informatique Module Système S4 C Département Informatique 2009 / 2010. Travaux Pratiques n o 2 : Communication iut ORSAY DUT Informatique Département Informatique 2009 / 2010 Travaux Pratiques n o 2 : Communication Nom(s) : Groupe : Date : Objectifs : rappels sur la création de processus par la primitive fork()

Plus en détail

Chap. 2. Langages et automates

Chap. 2. Langages et automates Chapitre 2. Langages et automates 1. Quelques définitions et description d un langage. 2. Les expressions régulières. 3. Les automates fini déterministes et non-déterministes. 4. Construction automatique

Plus en détail

Cours N 2. Règles Générales d Écriture d'un Programme en C

Cours N 2. Règles Générales d Écriture d'un Programme en C Cours N 2 Règles Générales d Écriture d'un Programme en C 1. Structure d'un fichier en langage C Inclusion des en-têtes #include < Nom_Bibliothèque.h > Déclarations globales Zone Contenant les Déclarations

Plus en détail

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c

Série d exercices. o Cas 2 : gcc o nomexecutable c nomsource.c. o Cas 3 : gcc o nomexecutable W -Wall nomsource.c Langage Impératif 1 TP 1 du 11 octobre 2010 Série d exercices Rappels rapides : - Un programme C s écrit toujours dans un fichier d extension.c (en minuscule!! sinon ce serait compilé comme du C++). Ce

Plus en détail

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr)

Programmer en JAVA. par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Programmer en JAVA par Tama (tama@via.ecp.fr( tama@via.ecp.fr) Plan 1. Présentation de Java 2. Les bases du langage 3. Concepts avancés 4. Documentation 5. Index des mots-clés 6. Les erreurs fréquentes

Plus en détail

Fascicule de Génie Electrique (Terminale S option SI)

Fascicule de Génie Electrique (Terminale S option SI) Le langage C Ressource Centre d intérêt CI10 : Traitement de Thématique I11 - Les systèmes numériques : Mise en œuvre d un microcontrôleur avec des composants logiciels réutilisables. 1 Les constantes

Plus en détail

Le langage C. 70's Début du langage C (Ritchie et Kernighan), Origine liée au système UNIX (90% écrit en C)

Le langage C. 70's Début du langage C (Ritchie et Kernighan), Origine liée au système UNIX (90% écrit en C) Le langage C 70's Début du langage C (Ritchie et Kernighan), Origine liée au système UNIX (90% écrit en C) 1978 ``The C Programming Language``, (Kernighan et Ritchie), --> on fait référence à cette première

Plus en détail

Examen. Les processus. Examen : systèmes d exploitation L3, parcours informatique, 2004-2005

Examen. Les processus. Examen : systèmes d exploitation L3, parcours informatique, 2004-2005 Mercredi 5 janvier 2005 Durée : 3 heures Documents autorisés Examen : systèmes d exploitation L3, parcours informatique, 2004-2005 Corrigé préliminaire et partiel. Examen Les valeurs de retour des primitives

Plus en détail

PART 2 : VARIABLES SIMPLES

PART 2 : VARIABLES SIMPLES PART 2 : VARIABLES SIMPLES Qu est ce qu une variable? Variables en C: Les types élémentaires en C Déclarer des variables dans un programme Contraintes pour le choix de noms Manipulation de base sur les

Plus en détail

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique

Cours Langage C. Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique Cours Langage C Passage de paramètres à la fonction main Pointeur de fonction Allocation dynamique I Passage de paramètres à la fonction main Tout exécutable C doit comporter une fonction main dont le

Plus en détail

Prendre un bon départ

Prendre un bon départ Chapitre A Prendre un bon départ 1 - Avant-propos Un ordinateur sait très bien faire deux choses : Calculer, d oùle nomcomputer en anglais que l on pourrait traduire par calculateur. Placer des données

Plus en détail

Initiation au C cours n 1

Initiation au C cours n 1 Initiation au C cours n 1 Antoine Miné École normale supérieure 15 février 2007 Organisation du cours Organisation du cours Repères historiques Généralités sur le C Organisation des séances 2 heures :

Plus en détail

Généralités Composants élémentaires d'un programme Instructions simples. JL Damoiseaux - Dpt R&T

Généralités Composants élémentaires d'un programme Instructions simples. JL Damoiseaux - Dpt R&T JAVA - I Généralités Composants élémentaires d'un programme Instructions simples 2 JAVA? Un langage de programmation (orienté objets) Une architecture basée sur une Machine Virtuelle Un ensemble très important

Plus en détail

Programmation Orientée Objet C++ Cours 1

Programmation Orientée Objet C++ Cours 1 Programmation Orientée Objet C++ Cours 1 P. Pesneau pierre.pesneau@math.u-bordeaux1.fr Université Bordeaux 1 Bât A33 - Bur 265 Ouvrages de référence B. W. Kernighan et D. M. Ritchie - Le langage C : Norme

Plus en détail

L utilitaire "make" et son inséparable Makefile

L utilitaire make et son inséparable Makefile L utilitaire "make" et son inséparable Makefile Compilation et exécution Programme source Analyse lexicale (scaning) Optimisation du code Programme abstrait (optimisé) Génération du code Séquence d unités

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC (CORRECTION) durée 3 heures environ page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance

Plus en détail

Introduction au langage C++

Introduction au langage C++ Introduction au langage C++ D après les notes d introductives au C++ de Stéphane Menozzi http://www.proba.jussieu.fr/~menozzi/ Maxime Pallud IMACS/X-TEC Bat 404 Tel: 01 69 33 46 86 Mail: pallud@imacs.polytechnique.fr

Plus en détail

1. Base de connaissance du langage C# 2. Initiation de l environnement de développement 3. Exercices

1. Base de connaissance du langage C# 2. Initiation de l environnement de développement 3. Exercices Sihao DENG sihao.deng@utbm.fr http://deng.sihao.perso.sfr.fr/mn41 1. Base de connaissance du langage C# 2. Initiation de l environnement de développement 3. Exercices Langage C Références: http://deng.sihao.perso.sfr.fr/mn41/lo11.pdf

Plus en détail

Programmation en Langage C/C++ par Sylvain Ferey. pour le Forum des Programmeurs Francophones

Programmation en Langage C/C++ par Sylvain Ferey. pour le Forum des Programmeurs Francophones Programmation en Langage C/C++ par Sylvain Ferey pour le Tables des matières Introduction... 5 Réalisation de notre premier programme C... 6 Les types du C / C++... 9 Le type caractère...9 Un signe de

Plus en détail

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre.

Cours C++ Lorsque je lance Dev C++, il apparaître l'écran ci-contre. Cours C++ Définition : Le langage C est un langage de programmation inventé par MM. Kernighan et Ritchie au début des années 70. Au début des années 90, Bjarne Stroustrup fait évoluer le langage vers le

Plus en détail

Organisation des données et structures de stockage

Organisation des données et structures de stockage ING2 - ING3 Nvx 2009-2010 Organisation des données et structures de stockage I. Stockage de l information en C Ce chapitre rappelle brièvement et complète certaines notions de base vues en première année

Plus en détail

C Facile. Le langage C. louen@via.ecp.fr. Mardi 15 décembre 2009. Centrale Réseaux. C Facile. Valentin Roussellet (p2010) - louen@via.ecp.

C Facile. Le langage C. louen@via.ecp.fr. Mardi 15 décembre 2009. Centrale Réseaux. C Facile. Valentin Roussellet (p2010) - louen@via.ecp. Le langage C Centrale Réseaux Mardi 15 décembre 2009 Sommaire C quoi? Le C est un langage de programmation créé en 1974, pour écrire le système d exploitation UNIX. Depuis,il est devenu (avec ses variantes),

Plus en détail

Traduction des arbres programmatiques en C

Traduction des arbres programmatiques en C Traduction des arbres programmatiques en C Table des matières 1 Premier exemple : helloworld.c 1 2 Méthode de programmation 2 3 Déclaration de variables 2 4 Structures de contrôle 3 5 Opérateurs C 5 6

Plus en détail

Éléments de programmation C++

Éléments de programmation C++ Université du Québec École de technologie supérieure Département de génie de la production automatisée GPA789 Analyse et Conception orientées objet Éléments de programmation C++ Professeur: Tony Wong,

Plus en détail

L3 Info & Miage. TP-Projet SGF

L3 Info & Miage. TP-Projet SGF TP-Projet SGF 1. Introduction L objectif de ce mini-projet est de réaliser un Système de Gestion de Fichiers simplifié capable de gérer des accès à des fichiers séquentiels de type flot. L idée est ici

Plus en détail

Prolog. Forth. Python. Ada. Pascal APL. Lisp. Fortran. Programmation en langage C Les fondamentaux. Alain Chillès 祁冲

Prolog. Forth. Python. Ada. Pascal APL. Lisp. Fortran. Programmation en langage C Les fondamentaux. Alain Chillès 祁冲 ++ Programmation en langage Les fondamentaux Alain hillès 祁冲 ParisTech Shanghai Jiao Tong 上海交大 巴黎高科卓越工程师学院 3 septembre 015 015 年 9 月 3 日 乙未年八月十一 1 Mots réservés ++ auto double int struct break else long

Plus en détail

Cours de programmation C

Cours de programmation C Cours de programmation C B. Gentou - Université Paris 7 - M1 ISIFAR I. Introduction 1. BREF HISTORIQUE Le langage C a été créé par Denis Richtie en 1972 avec pour objectif l'écriture du système d'exploitation

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 7 de cours/td Université Paris-Diderot Objectifs: Savoir écrire un programme en entier (structure du programme avec une procédure main et des déclarations de fonctions,

Plus en détail

Abrégé de programmation en Langage C

Abrégé de programmation en Langage C Abrégé de programmation en Langage C Denis Robilliard version 2010 Laboratoire d Informatique du Littoral Université du Littoral-Côte d'opale Table des matières I Introduction 2 1 Origines..................................................

Plus en détail

Introduction au langage

Introduction au langage Introduction au langage Un langage de programmation : de haut niveau interprété orienté objet si on le souhaite rapide à écrire et proche du pseudo-code simple tant qu on fait des choses simples Un programme

Plus en détail

COURSC 1. Langage C. Support de cours. Patrick Corde. Messagerie : corde@idris.fr

COURSC 1. Langage C. Support de cours. Patrick Corde. Messagerie : corde@idris.fr COURSC 1 Langage C Support de cours Messagerie : corde@idris.fr Liste des transparents 2 1 Présentation du langage C......... 7 1.1 Historique................ 8 1.2 Intérêts du langage............ 10 1.3

Plus en détail

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles

GL / C++ Chapitre 7. Lien Dynamique Méthodes Virtuelles GL / C++ Chapitre 7 Lien Dynamique Méthodes Virtuelles 1. Pointeur sur un objet d'une classe dérivée Considérons les classes écrites précédemment : Personne Etudiant // dérive de personne Salarie // dérive

Plus en détail

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP COURS PROGRAMMATION INITIATION AU LANGAGE C SUR MICROCONTROLEUR PIC page 1 / 7 INITIATION AU LANGAGE C SUR PIC DE MICROSHIP I. Historique du langage C 1972 : naissance du C dans les laboratoires BELL par

Plus en détail

2 Utilisation d un tube par plusieurs processus

2 Utilisation d un tube par plusieurs processus O r s a y Travaux Pratiques n o 3 : Sémaphores DUT Informatique 2010 / 2011 Nom(s) : Groupe : Date : Objectifs : être capable de construire des applications dont le mécanisme d exclusion mutuelle repose

Plus en détail

Programmation procédurale

Programmation procédurale IUT IUT A Lyon 1 Informatique Programmation procédurale du du C-ANSI C au au C++ C++ ~ A. A. P. P. ~ Année Année 2003 2003 ~2004 ~2004 U C L B Université LYON I ~ IUT-A Département Informatique ~ A.P.

Plus en détail

Programmation en C J. Morinet Lambert -UHP 2004 L. Pierron -Loria/INRIA-Lorraine. Utilisation limitée au cours. Mars Modifié le 28/09/04

Programmation en C J. Morinet Lambert -UHP 2004 L. Pierron -Loria/INRIA-Lorraine. Utilisation limitée au cours. Mars Modifié le 28/09/04 Programmation en C 2003 J. Morinet Lambert -UHP 2004 L. Pierron -Loria/INRIA-Lorraine Utilisation limitée au cours Mars 2001- Modifié le 28/09/04 L. Pierron Loria/INRIA Lorraine 28/09/04 1 Etapes de programmation

Plus en détail

I. Introduction à MATLAB

I. Introduction à MATLAB 1. Introduction Le nom MATLAB est la contraction du terme anglais matrix laboratory [1]. Ce logiciel est spécialement conçu pour le calcul scientifique et la manipulation de vecteurs et de matrices. Le

Plus en détail

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs

C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs C++ / MC-II1 - Cours n o 3 Allocation Mémoire et Constructeurs Sebastien.Kramm@univ-rouen.fr IUT GEII Rouen 2010-2011 S. Kramm (IUT Rouen) MCII1 - Cours 3 2010-2011 1 / 47 Sommaire 1 Rappels de C et définitions

Plus en détail

Programmation et structures de données en C cours 1: introduction. Jean-Lou Desbarbieux et Stéphane Doncieux 2I001 UPMC 2017/2018

Programmation et structures de données en C cours 1: introduction. Jean-Lou Desbarbieux et Stéphane Doncieux 2I001 UPMC 2017/2018 Programmation et structures de données en C cours 1: introduction Jean-Lou Desbarbieux et Stéphane Doncieux 2I001 UPMC 2017/2018 Bibliographie et outils I Le langage C : norme ANSI. Brian W. Kernighan

Plus en détail

Introduction à la Programmation 1

Introduction à la Programmation 1 Introduction à la Programmation 1 Séance 5 de cours/td Université Paris-Diderot Objectifs: Boucles while. Variables booléennes. 1 La boucle while Boucle non bornée [Cours] La boucle non bornée permet de

Plus en détail

1. Eléments de base du langage C

1. Eléments de base du langage C 1 1. Eléments de base du langage C Généralités Programme et sous-programme Fonction C Structure d un programme C Vocabulaire de base et syntaxe Exemples 2 Généralités Crée en 1972 par D. Ritchie pour écrire

Plus en détail

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture

6. Lecture/écriture formatées et Fichiers. printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 1 6. Lecture/écriture formatées et Fichiers printf / scanf Fichier: Mémoire tampon Accès aux fichiers Modes d'ouverture Lecture / écriture 2 Références Site du zèro : Programmer en C http://www.siteduzero.com/tutoriel-3-14189-apprenez-a-programmer-en-c.html

Plus en détail

Les exceptions en java

Les exceptions en java 1/12 Les exceptions en java 2/12 C'est quoi une exception? Une exception est un événement (une erreur) qui se produit lors de l'exécution d'un programme, et qui va provoquer un fonctionnement anormal (par

Plus en détail

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon

3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 3ETI, Examen [CSC2] Developpement Logiciel en C CPE Lyon 2013-2014 (1ere session) durée 3h Tous documents et calculatrices autorisés. Répondez aux questions sur une copie séparée Le sujet comporte 12 pages

Plus en détail