Les bases de la programmation en C

Documents pareils
Introduction au langage C

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

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


Programmation en langage C

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

SUPPORT DE COURS. Langage C

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

Java Licence Professionnelle CISII,

INITIATION AU LANGAGE C SUR PIC DE MICROSHIP

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

Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)

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

Langage C. Patrick Corde. 22 juin Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin / 289

Programmer en JAVA. par Tama

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

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40

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

Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr

COMPARAISONDESLANGAGESC, C++, JAVA ET

Cours d Algorithmique et de Langage C v 3.0

Méthodes de programmation systèmes UE n NSY103. Notes de cours. Nombre d'heures : 55h (~ cours de 3 heures)

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

Cours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre Enrica.Duchi@liafa.jussieu.fr

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

Le langage C. Introduction, guide de reference

Notions fondamentales du langage C# Version 1.0

Programme Compte bancaire (code)

Support de Cours de Langage C. Christian Bac

Claude Delannoy. 3 e édition C++

Algorithmique, Structures de données et langage C

Rappels Entrées -Sorties

Cours d initiation à la programmation en C++ Johann Cuenin

Cours de C. Petits secrets du C & programmation avancée. Sébastien Paumier

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

INF 321 : mémento de la syntaxe de Java

Introduction au Langage de Programmation C

Anis ASSÈS Mejdi BLAGHGI Mohamed Hédi ElHajjej Mohamed Salah Karouia

Plan du cours. Historique du langage Nouveautés de Java 7

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

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

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

Langage Éric Guérin 5 octobre 2010

REPUBLIQUE ALGERIENNE DEMOCRATIQUE ET POPULAIRE UNIVERSITE M HAMED BOGARA DE BOUMERDES

as Architecture des Systèmes d Information

Généralités sur le Langage Java et éléments syntaxiques.

Programmation en Java IUT GEII (MC-II1) 1

Algorithmique et Programmation, IMA

Cours de C++ François Laroussinie. 2 novembre Dept. d Informatique, ENS de Cachan

Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :

TP1 : Initiation à Java et Eclipse

Algorithmes et Programmes. Introduction à l informatiquel. Cycle de vie d'un programme (d'un logiciel) Cycle de vie d'un programme (d'un logiciel)

INITIATION A LA PROGRAMMATION

Conventions d écriture et outils de mise au point

Une introduction à Java

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile

Utilisation d objets : String et ArrayList

Cours de programmation avancée. Le langage C. Université du Luxembourg

PROJET ALGORITHMIQUE ET PROGRAMMATION II

INITIATION AU LANGAGE JAVA

ACTIVITÉ DE PROGRAMMATION

Brefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs

Les structures. Chapitre 3

Structurer ses données : les tableaux. Introduction à la programmation

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

Chapitre 1 : La gestion dynamique de la mémoire

Présentation du langage et premières fonctions

Analyse de sécurité de logiciels système par typage statique

Java Licence Professionnelle CISII,

Le Langage C++ Patrick TRAU - ULP IPST version du 02/10/05

OS Réseaux et Programmation Système - C5

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test

Cours 1 : La compilation

Chapitre 10. Les interfaces Comparable et Comparator 1

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)

Principes. 2A-SI 3 Prog. réseau et systèmes distribués 3. 3 Programmation en CORBA. Programmation en Corba. Stéphane Vialle

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

Gestion mémoire et Représentation intermédiaire

Assurance Qualité. Cours de génie logiciel. Renaud Marlet. LaBRI / INRIA (d'après A.-M. Hugues) màj 23/04/2007

1. Structure d'un programme FORTRAN 95

Cours de Programmation Impérative: Zones de mémoires et pointeurs

Introduction au C++ et à la programmation objet

Java c est quoi? Java pourquoi?

Les structures de données. Rajae El Ouazzani

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

TD3: tableaux avancées, première classe et chaînes

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

INTRODUCTION À LA PROGRAMMATION PRATIQUE DU LANGAGE C. M. Le Gonidec

MINIMUM. connaissances nécessaires à la programmation des microcontrôleurs PIC18 en langage C (une introduction au langage c A.N.S.

Quelques éléments de compilation en C et makefiles

Informatique / Programmation

Nom de l application

Programmation Classique en langage C

Le Langage C Licence Professionnelle Qualité Logiciel Pr. Mouad BEN MAMOUN ben_mamoun@fsr.ac.ma Année universitaire 2011/2012

Programmation en C/C++

TP 1. Prise en main du langage Python

Transcription:

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 DEC PDP-11. En 1978, Brian Kernighan et Dennis Richie publient la définition classique du C dans le livre The C Programming language [6]. Le C devenant de plus en plus populaire dans les années 80, plusieurs groupes mirent sur le marché des compilateurs comportant des extensions particulières. En 1983, l ANSI (American National Standards Institute) décida de normaliser le langage ; ce travail s acheva en 1989 par la définition de la norme ANSI C. Celle-ci fut reprise telle quelle par l ISO (International Standards Organization) en 1990. C est ce standard, ANSI C, qui est décrit dans le présent document. 2 La compilation Le C est un langage compilé (par opposition aux langages interprétés). Cela signifie qu un programme C est décrit par un fichier texte, appelé fichier source. Ce fichier n étant évidemment pas exécutable par le microprocesseur, il faut le traduire en langage machine. Cette opération est effectuée par un programme appelé compilateur. La compilation se décompose en fait en 4 phases successives : 1. Le traitement par le préprocesseur : le fichier source est analysé par le préprocesseur qui effectue des transformations purement textuelles (remplacement de chaînes de caractères, inclusion d autres fichiers source... ). 2. La compilation : la compilation proprement dite traduit le fichier généré par le préprocesseur en assembleur, c est-à-dire en une suite d instructions du microprocesseur qui utilisent des mnémoniques rendant la lecture possible. 3. L assemblage : cette opération transforme le code assembleur en un fichier binaire, c est-à-dire en instructions directement compréhensibles par le processeur. Généralement, la compilation et l assemblage se font dans la foulée, sauf si l on spécifie explicitement que l on veut le code assembleur. Le fichier produit par l assemblage est appelé fichier objet. 4. L édition de liens : un programme est souvent séparé en plusieurs fichiers source, pour des raisons de clarté mais aussi parce qu il fait généralement appel à des librairies de fonctions standard déjà écrites. Une fois chaque code source assemblé, il faut donc lier entre eux les différents fichiers objets. L édition de liens produit alors un fichier dit exécutable. Les différents types de fichiers utilisés lors de la compilation sont distingués par leur suffixe. Les fichiers source sont suffixés par.c, les fichiers prétraités par le préprocesseur par.i, les fichiers assembleur par.s, et les fichiers objet par.o. Les fichiers objets correspondant aux librairies pré-compilées ont pour suffixe.a.

3 Les composants elémentaires du C Un programme en langage C est constitué des six groupes de composants élémentaires suivants : les identificateurs, les mots-clefs, les constantes, les chaînes de caractères, les opérateurs, les signes de ponctuation. On peut ajouter à ces six groupes les commentaires, qui sont enlevés par le préprocesseur. 3.1 Les identificateurs Le rôle d un identificateur est de donner un nom à une entité du programme. Plus précisément, un identificateur peut désigner : un nom de variable ou de fonction, un type défini par typedef, struct, union ou enum, une étiquette. Un identificateur est une suite de caractères parmi : les lettres (minuscules ou majuscules, mais non accentuées), les chiffres, le blanc souligné ( ). Le premier caractère d un identificateur ne peut pas être un chiffre. Par exemple, var1, tab 23 ou deb sont des identificateurs valides ; par contre, 1i et i:j ne le sont pas. Il est cependant déconseillé d utiliser comme premier caractère d un identificateur car il est souvent employé pour définir les variables globales de l environnement C. Les majuscules et minuscules sont différenciées. Le compilateur peut tronquer les identificateurs au-delà d une certaine longueur. Cette limite dépend des implémentations, mais elle est toujours supérieure à 31 caractères. (Le standard dit que les identificateurs externes, c est-à-dire ceux qui sont exportés à l édition de lien, peuvent être tronqués à 6 caractères, mais tous les compilateurs modernes distinguent au moins 31 caractères). 3.2 Les mots-clefs Un certain nombre de mots, appelés mots-clefs, sont réservés pour le langage lui-même et ne peuvent pas être utilisés comme identificateurs. L ANSI C compte 32 mots clefs : auto const double float int short struct unsigned break continue else for long signed switch void case default enum goto register sizeof typedef volatile char do extern if return static union while

3.3 Les commentaires Un commentaire débute par /* et se termine par */. Par exemple, /* Ceci est un commentaire */ On ne peut pas imbriquer des commentaires. Quand on met en commentaire un morceau de programme, il faut donc veiller à ce que celui-ci ne contienne pas de commentaire. 4 Structure d un programme C Une expression est une suite de composants élémentaires syntaxiquement correcte, par exemple x = 0 ou bien (i >= 0) && (i < 10) && (p[i]!= 0) Une instruction est une expression suivie d un point-virgule. Le point-virgule signifie en quelque sorte évaluer cette expression. Plusieurs instructions peuvent être rassemblées par des accolades et pour former une instruction composée ou bloc qui est syntaxiquement équivalent à une instruction. Par exemple, if (x!= 0) z = y / x; t = y % x; Une instruction composée d un spécificateur de type et d une liste d identificateurs séparés par une virgule est une déclaration. Par exemple, int a; int b = 1, c; double x = 2.38e4; char message[80]; En C, toute variable doit faire l objet d une déclaration avant d être utilisée. Un programme C se présente de la façon suivante : [ directives au préprocesseur] [ déclarations de variables externes] [ fonctions secondaires] main() déclarations de variables internes instructions

La fonction principale main peut avoir des paramètres formels. On supposera dans un premier temps que la fonction main n a pas de valeur de retour. Les fonctions secondaires peuvent être placées indifféremment avant ou après la fonction principale. Une fonction secondaire peut se décrire de la manière suivante : type ma_fonction ( arguments ) déclarations de variables internes instructions Cette fonction retournera un objet dont le type sera type (à l aide d une instruction comme return objet;). Les arguments de la fonction obéissent à une syntaxe voisine de celle des déclarations : on met en argument de la fonction une suite d expressions type objet séparées par des virgules. Par exemple, la fonction secondaire suivante calcule le produit de deux entiers : int produit(int a, int b) int resultat; resultat = a * b; return(resultat);