Analyse syntaxique IFT Compilation et interpr etation c! Danny Dub e 2006

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

Download "Analyse syntaxique IFT-15752 Compilation et interpr etation c! Danny Dub e 2006"

Transcription

1 Analyse syntaxique

2 Introduction Les grammaires hors-contexte sont les outils que nous utiliserons pour spécifier la structure syntaxique des programmes. Les grammaires hors-contexte ont plusieurs avantages: Ils constituent une spécification précise et claire de la syntaxe des programmes. On peut construire un analyseur syntaxique efficace directement à partir de certaines classes de grammaires. Offre un cadre pour la définition de traducteurs orientés-syntaxe. Une définition et une implantation basées sur une grammaire hors-contexte rendent les modifications ultérieures du compilateur plus facile. Cette portion du cours se concentre sur l implantation à la main d analyseurs syntaxiques et se rend jusqu à la définition des grammaires LL(1).

3 Role et types d analyseurs syntaxiques programme source analyseur lexical jeton prochain analyseur syntaxique arbre de reste de la représentation dérivation partie frontale intermédiaire table des symboles Il y trois grands types d analyseurs syntaxiques: Les méthodes universelles: CYK, Earley. Les méthodes descendantes: descente récursive, basées sur les grammaires LL(k). Les méthodes ascendantes: basées sur les grammaires LR(k).

4 Gestion et signalement des erreurs Rappelons qu on peut classer les erreurs en ces catégories: lexicales,syntaxiques,sémantiquesetlogiques. Étant donné que peu d erreurs peuvent être détectées au niveau lexical, l analyseur syntaxique détecte la plupart des erreurs des deux premières catégories. Objectifs du gestionnaire d erreurs: Les erreurs doivent être signalées clairement (messages) etprécisément(causesetcoordonnées). Il devrait y avoir récupération après une erreur afin de continuer la compilation et la détection d erreurs pour le reste du programme. La gestion des erreurs ne devrait pas ralentir la compilation desprogrammescorrectsdefaçonimportante. L analyseur syntaxique peut tenter de récupérer après une erreur de diverses façons: Mode panique: abandon des jetons jusqu à un jeton dit de synchronisation (certains délimiteurs ou mots clés). Correction locale: modification d un préfixe court de l entrée pour permettre à l analyse de se poursuivre. Productions d erreurs: utilisation de productions d erreur qui captent certaines erreurs et fournissent une réaction adéquate. Correction globale: calcul d une plus petite distance d édition qui transforme le programme erroné en un programme syntaxiquement valide.

5 Conventions de notation Pour minimiser le verbiage inutile, on adopte plusieurs conventions liées à la notation. 1. Les choses suivantes sont des terminaux: des lettres minuscules du début de l alphabet comme a, b, c; des opérateurs comme +, ; des signes de ponctuation; les chiffres 0,..., 9; des noms en gras comme id, if. 2. Les choses suivantes sont des non-terminaux: des lettres majuscules du début de l alphabet comme A, B, C; la lettre S qui est souvent le symbole de départ; des noms en minuscules et en italique comme expr, stmt. 3. Les lettres majuscules de la fin de l alphabet, comme X, Y et Z, représententdessymbolesdelagrammaire;c est-à-dire, des terminaux et non-terminaux indifféremment. 4. Les lettres minuscules de la fin de l alphabet, comme u,...,z, représententdeschaînesfaitesdeterminaux. 5. Les lettres grecques minuscules, comme α, β et γ, représententdeschaînesfaitesdesymbolesdelagrammaire. Par ex., A α est la forme générale d une production où A et α sont les membres gauche et droit, respectivement. 6. Si on a les productions A α 1,...,A α k,appeléesa-productions, on peut écrire A α 1... α k et appeler les α i les alternatives pour A. 7. Àmoinsd indicationscontraires,lemembregauchedelapremière production est le symbole de départ.

6 Une phrase est une suite de terminaux (synonyme d une chaîne). Définitions Une forme de phrase est une suite de terminaux et de non-terminaux. Une forme de phrase α est dérivable en une forme de phrase α,qu ondénoteparα α,siα = βaγ, α = βδγ et que A δ est une production. On dit aussi que α 1 est dérivable en α n,qu ondénoteparα 1 α n,siα 1 α 2... α n et n 1. Si n>1, onpeutécrire α 1 + α n. On a une dérivation de E en w si E w. Une chaîne w est générée par la grammaire si S w où S est le symbole de départ. Le langage généré par une grammaire G, dénoté L(G), est l ensemble des chaînes générées par G. Un langage L est hors-contexte s il existe une grammaire G dont le langage est L. Deux grammaires sont é q u i v a l e n t e sis elles génèrent le même langage. On dit que α est dérivable à gauche(droite) d abord en α,qu onnoteα lm α (α rm α,respectivement),siα = waβ, α = wγβ et A γ est une production (α = βaw et α = βγw, respectivement). On a une dérivation à gauche(droite) d abord de w, S lm gauche(droite) d abord. w (S rm w,respectivement),sichaqueétapedeladérivationsefaità Un arbre de dérivation d une chaîne w... Une grammaire est ambiguë s il existe plus d un arbre de dérivation (ou plus d une dérivation à gauche(droite) d abord) pour un certain w.

7 Grammaires H-C versus expressions régulières On sait que pour toute expression régulière, on peut créer une grammaire hors-contexte qui génère le même langage. Donc, pourquoi tient-on à utiliser les expressions régulières pour définir la structure lexicale des langages de programmation? La structure lexicale des langages est habituellement très simpleetnenécessite pas l usage des grammaires hors-contexte. Les expressions régulières sont plus compactes et plus claires. On peut produire des analyseurs lexicaux plus efficaces à partir d expressions régulières qu à partir de grammaires. La séparation en structure lexicale et structure syntaxique aide à modulariser le compilateur.

8 Vérification du langage généré Le créateur d un langage de programmation doit s assurer que le langage généré par la grammaire qu il emploie génère bien le bon langage. Le degré de formalisme dans la vérification peut varier. Aussi, il est rarement nécessaire de vérifier l ensemble de la grammaire d un coup. Pour montrer qu une grammaire génère le bon langage, il faut montrer que toutes les chaînes appartenant au langage et seulement celles-ci sont généréesparlagrammaire. À titre d exemple,le manuel présente l exemple 4.7 où on démontre que le langage des chaînes dans {(, )} qui sont bien parenthésées est généré par la grammaire: S (S)S ɛ

9 Élimination de l ambiguïté La grammaire décrivant un langage doit être conçue pour être sans ambiguïté ou bien doit être convertie de façon à ce qu elle ne comporte plus d ambiguïté. Par exemple, la grammaire synthétique suivante génère des énoncés mais elle est ambiguë: stmt if expr then stmt if expr then stmt else stmt other Toutefois, on peut la modifier par la grammaire équivalente suivante, laquelle n est pas ambiguë: stmt matched stmt unmatched stmt matched stmt if expr then matched stmt else matched stmt other unmatched stmt if expr then stmt if expr then matched stmt else unmatched stmt

10 Considérons la grammaire récursive à gauche suivante: A Aα β Élimination de la récursion à gauche où β ne commence pas par A. OnpeutéliminerlarécursionàgaucheenremarquantqueA ne peut mener qu à des formes de phrases du genre βα.ainsi,lagrammairesuivantegénèrelemêmelangagemaissansutiliserlarécursion à g a u c h e. A βa A αa ɛ Exemple 4.8 On peut éliminer la récursion à gauche de la grammaire suivante: E E + T T T T F F F (E) id en la transformant en la grammaire suivante: E TE E +TE ɛ T FT T FT ɛ F (E) id

11 Élimination de la récursion à gauche La technique d élimination de la récursion à gauche fonctionne peu importe le nombre de A-productions. Àtitred exemple,lesa-productions suivantes peuvent se grouper en celles qui commencent avec A et celles qui ne commencent pas avec A: A Aα 1... Aα m β 1...β n On peut alors transformer la grammaire en une grammaire sans récursion à gauche: A β 1 A... β n A A α 1 A... α m A ɛ Ce genre de transformation élimine les récursions à gauche directes. Certainsnon- terminaux peuvent être récursifs à gauche indirectement. Par exemple, dans la grammaire suivante, S est récursif à gauche: S Aa b A Ac Sd ɛ

12 Élimination de la récursion à gauche L algorithme suivant élimine toute récursion à gauche d une grammaire, même indirecte. Il fonctionne en autant qu il n y ait pas de cycles, c est-à-dire qu il y n ait pas un A tel que A + A. Algorithme 4.1 Entrée: Une grammaire G sans cycles ni ɛ-productions. Sortie: Une grammaire équivalente sans récursion à gauche. Méthode: 1. Ordonner les non-terminaux par indices A 1,...,A n. 2. Pour i := 1àn faire Pour j := 1ài 1 faire Remplacer chaque production de la forme A i A j γ par les productions A i δ 1 γ... δ k γ, où A j δ 1... δ k sont les A j -productions actuelles Fin Éliminer les récursions immédiates à gauche des A i -productions Fin Exemple 4.9 Éliminer la récursion à gauche de la grammaire: S Aa b A Ac Sd ɛ

13 Dans une grammaire comme la suivante: Factorisation à gauche stmt if expr then stmt else stmt if expr then stmt on ne peut choisir dès le départ laquelle des productions il faututiliser. Toutefois,en mettant en commun les 4 premiers symboles on retarde la prise de décision jusqu au point où on dispose des informations nécessaires: stmt if expr then stmt stmt stmt else stmt ɛ Plus généralement, on peut remplacer les productions: par: A αβ 1 αβ 2 A αa A β 1 β 2

14 Factorisation à gauche Algorithme 4.2 Entrée: Une grammaire G. Sortie: Une grammaire équivalente factorisée à gauche. Méthode: 1. Pour chaque non-terminal A, trouverlepluslongpréfixeα commun à au moins deux A- productions. 2. Si α ɛ, remplacer: A αβ 1... αβ n γ 1... γ m par (où A est un nouveau non-terminal): A αa γ 1... γ m A β 1... β n 3. Répéter jusqu à ce qu il n y ait plus de non-terminal pour lequel il existe un préfixe commun non-trivial. Exemple 4.10

15 Langages non hors-contexte Les langages suivants ne sont pas hors-contexte: L 1 = {wcw w {a, b} } L 2 = {a n b m c n d m n 1 et m 1} L 3 = {a n b n c n n 0} Pourtant, ils ressemblent beaucoup aux langages suivants qui, eux, sont hors-contexte: L 1 = {wcw R w {a, b} } L 2 = {a n b m c m d n n 1 et m 1} L 3 = {an b n n 0}

16 Analyse syntaxique descendante Section 4.4 Contenu: Analyse syntaxique descendante. Analyse syntaxique descendante sans rebroussement (backtracking) ouanalyseprédictive. La classe des grammaires LL(1). Analyseurs prédictifs sans récursion.

17 Analyse syntaxique descendante L analyse syntaxique descendante peut être vue comme étant: une tentative de trouver une dérivation à gauche d abord pour la chaîne d entrée; ou une tentative de construire un arbre de dérivation pour la chaîne d entrée en construisant les noeuds de l arbre en pré-ordre. En règle générale, l analyse syntaxique descendante demande de faire du rebroussement. Ce n est pas souhaitable en compilation car, pour certaines grammaires, l analyse peut prendre un temps exponentiel en pire cas. Exemple 4.14 Simulons l analyse descendante de la chaîne w = cad en considérant la grammaire: S cad A ab a Nécessite un rebroussement!

18 Analyseurs prédictifs Dans certains cas, en concevant bien notre grammaire, en éliminant les ambiguïtés et les récursions à gauche, on obtient un analyseur syntaxique descendant qui n a pas besoin d effectuer de rebroussement, c est-à-dire un analyseur prédictif. Pour obtenir un analyseur prédictif, il faut respecter la condition stipulant que: pour tout non-terminal A à s u b s t i t u e r, pour tout terminal a qui doit être consommé sur l entrée, il doit y avoir au plus une alternative parmi A α 1... α n qui est capable de générer une chaîne commençant par a. Par exemple, en ce qui concerne le non-terminal stmt dans la grammaire suivante, la condition est respectée: stmt if expr then stmt else stmt while expr do stmt begin stmt list end

19 Diagrammes de transition On peut décrire le comportement d un analyseur prédictif à l aide de diagrammes de transition. Les diagrammes de transition pour l analyse syntaxique diffèrent légèrement des diagrammes pour l analyse lexicale: Les diagrammes sont associés aux non-terminaux et il y a un seul diagramme par non-terminal. Les étiquettes sur les transitions peuvent aussi être des non-terminaux. Une transition sur un terminal correspond à la consommation du terminal sur l entrée. Une transition sur un non-terminal correspond à appeler la procédure d analyse associée au non-terminal. On construit un diagramme de transition pour un non-terminal A ainsi: 1. Créer un état de départ et un état final. 2. Pour chaque production A X 1...X n,ajouterunchemindontlesétiquettessontx 1,..., X n (ou ajouter une transition étiquetée avec ɛ si la production est A ɛ).

20 Diagrammes de transition L analyseur prédictif effectue son travail en se frayant un chemin à travers un diagramme de l état de départ à l état final en faisant un certain nombre de transitions: en passant d un état s à u n é t a tt par un arc étiqueté a pourvu que le prochain symbole en entrée soit a; en passant d un état s à u n é t a t par un arc étiqueté A en appelant la procédure associée à A; toutsymboledel entréequiestconsommél estaucoursdel appelà la procédure; au retour de l appel, on considère que le symbole A aétéconsommé; en passant d un état s à u n é t a tt par un arc étiqueté ɛ sans consommer de symbole de l entrée. Aux états où l analyseur prédictif doit choisir parmi plusieurs options, il faut prévoir une méthode de prise de décision.

21 Diagrammes de transition Voici les diagrammes de transitions correspondant à la grammaire suivante: E TE E +TE ɛ T FT T FT ɛ F (E) id E: 0 T 1 E 2 E : T : T : F : T 5 E 6 ɛ 7 F 8 T F 12 T 13 ɛ 14 ( 15 E 16 ) 17 id

22 Diagrammes de transition Simplification de diagrammes: E : ɛ T 5 E : T ɛ 6 ɛ 6 T E: 0 T E: 0 T 3 ɛ 6 ɛ 6 Diagrammes simplifiés (20-25% plus rapides): + E: 0 T 3 ɛ 6 T : 7 F 8 ɛ 13 F : 14 ( 15 E 16 ) 17 id

23 Analyse prédictive sans récursion Entrée a + b $ Pile X Y Programme de l AS prédictif Sortie Z $ Table d analyse syntaxique M

24 L analyseur syntaxique prédictif: Analyse prédictive sans récursion comporte un tampon d entrée, initialisé avec la chaîne d entrée suivie du symbole $; comporte une pile, initialisée avec le symbole de départ par-dessus le symbole $; utilise une table d analyse M, oùm[a, a] indique quelle production utiliser si le symbole sur le dessus de la pile est A et que le prochain symbole en entrée est a. Dans une configuration où X est sur le dessus de la pile et a est le prochain symbole dans l entrée, l analyseur effectue une des actions parmi les suivantes: Si X = a =$,l analyseurarrêtesesopérationsetannonceuneanalyseréussie. Si X = a $,l analyseurdépilex et fait avancer le pointeur de l entrée. Si X est un non-terminal, le programme de l analyseur consulte la tabled analyseenposition M[X, a]. Lacaseconsultéefournitsoituneproductionàutiliser,soituneindicationd erreur. Si, par exemple, M[X, a] ={X UVW}, alorsl analyseurdépilex et empile W, V et U, dans l ordre. En cas d erreur, l analyseur s arrête et signale l erreur. La sortie de l analyseur consiste en la suite de productions utilisées.

25 Analyse prédictive sans récursion Algorithme 4.3 Entrée: Une chaîne w et la table d analyse M associée à une grammaire G. Sortie: Une dérivation à gauche d abord de w si w L(G) et le signalement d une erreur sinon. Méthode: initialiser la pile avec S par-dessus $ et le tampon d entrée avec w$; faire pointer ip sur le premier symbole de l entrée; répéter soit X le symbole du dessus de pile et a le symbole pointé par ip; si X est un terminal ou $ alors si X = a alors dépiler X et incrémenter ip sinon erreur() sinon / X est un non-terminal / si M[X, a] =X Y 1...Y k alors début dépiler X; empiler Y k,...,y 1,dansl ordre; afficher la production X Y 1...Y k fin sinon erreur() jusqu à ce que X =$ / la pile est vide /

26 Analyse prédictive sans récursion Exemple 4.16 Àlagrammaire: E TE E +TE ɛ T FT T FT ɛ F (E) id on associe la table d analyse suivante: Non- Symbole d entrée terminal id + ( ) $ E E TE E TE E E +TE E ɛ E ɛ T T FT T FT T T ɛ T FT T ɛ T ɛ F F id F (E) Analyse prédictive de la chaîne id + id id.

27 FIRST et FOLLOW On définit l ensemble FIRST(α) comme étant l ensemble des terminaux qui débutent les chaînes générées à partir de α plus ɛ si α peut générer ɛ. Formellement: FIRST(α) ={a α aw} {ɛ α ɛ} On peut calculer un ou des ensembles FIRST à l aide des règles suivantes: FIRST(ɛ) ={ɛ}. FIRST(aα )={a}. Si X α est une production, FIRST(X) FIRST(α). Si ɛ FIRST(X), alors FIRST(Xα) =(FIRST(X) {ɛ}) FIRST(α), sinon FIRST(Xα)=FIRST(X).

28 FIRST et FOLLOW On définit l ensemble FOLLOW(A), A étant un non -terminal, comme étant l ensemble des terminaux qui peuvent apparaître immédiatement à droite de A dans une forme de phrase générée par la grammaire. On ajoute $ à FOLLOW(A) si A peut apparaître complètement à droite dans une forme de phrase. Plus formellement, FOLLOW(A) ={a S αaaβ} {$ S αa} On peut calculer les ensembles FOLLOW de tous les non-terminaux d une grammaire à l aide des règles suivantes: Si S est le symbole de départ, alors $ FOLLOW(S). Si A αbβ est une production, alors FIRST(β) {ɛ} FOLLOW(B). Si A αb est une production ou si A αbβ est une production et que ɛ FIRST(β), alorsfollow(a) FOLLOW(B).

29 FIRST et FOLLOW Exemple 4.17 Considérons (une fois encore) cette grammaire: E TE E +TE ɛ T FT T FT ɛ F (E) id alors les ensembles FIRST et FOLLOW des non-terminaux sont les suivants: FIRST(E) =FIRST(T )=FIRST(F )={(, id} FIRST(E )={+,ɛ} FIRST(T )={,ɛ} FOLLOW(E) =FOLLOW(E )={), $} FOLLOW(T )=FOLLOW(T )={+, ), $} FOLLOW(F )={, +, ), $}

30 Construction de tables d analyse Algorithme 4.4 Entrée: Une grammaire G. Sortie: Une table d analyse M. Méthode: 1. Pour chaque production A α, faire: (a) Pour chaque terminal a FIRST(α), ajoutera α à M[A, a]; (b) Si ɛ FIRST(α), ajoutera α à M[A, b] pour chaque symbole b FOLLOW(A). b est un terminal ou $. 2. Chaque case de M qui est encore indéfinie doit être initialisée à un signalement d erreur. Exemple 4.18.

31 Construction de tables d analyse Exemple 4.19 Àlagrammairesuivante(grammairesymbolisantlecasduif-then-else): S ietss a S es ɛ E b on associe la table d analyse suivante: Non- Symbole d entrée terminal a b e i t $ S S a S ietss S E E b S ɛ S es S ɛ

32 Grammaires LL(1) On dit qu une grammaire est LL(1) si sa table d analyse ne comporte aucune case qui contient plus d une production. L abréviation LL(1) a la signification suivante: le premier L indique que l entrée (la suite de jetons) est lue degaucheàdroite(from Left to right); le second L indique que la technique recherche une dérivation à gauche d abord (Leftmost derivation); le 1 indique qu un seul jeton constitue l horizon de l analyse. Les grammaires LL(1) possèdent plusieurs propriétés intéressantes: Aucune grammaire ambiguë ou comportant une récursion à gauche n est LL(1). S il existe deux productions A α et A β (α β) dansunegrammairell(1),onaque: il n existe pas de terminal a tel que α et β génèrent tous deux des chaînes qui commencent par a; au plus un de α et β peut générer la chaîne ɛ; si β ɛ,alorsα ne peut pas générer une chaîne dont le premier terminal est élémentdefollow(a). On peut créer un analyseur prédictif directement à partir d unegrammaireg si et seulement si G est LL(1).

Théorie des Langages

Théorie des Langages Théorie des Langages Analyse syntaxique descendante Claude Moulin Université de Technologie de Compiègne Printemps 2010 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1) Exemple : Grammaire

Plus en détail

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1

Chap 4: Analyse syntaxique. Prof. M.D. RAHMANI Compilation SMI- S5 2013/14 1 Chap 4: Analyse syntaxique 1 III- L'analyse syntaxique: 1- Le rôle d'un analyseur syntaxique 2- Grammaires non contextuelles 3- Ecriture d'une grammaire 4- Les méthodes d'analyse 5- L'analyse LL(1) 6-

Plus en détail

Les structures de données. Rajae El Ouazzani

Les structures de données. Rajae El Ouazzani Les structures de données Rajae El Ouazzani Les arbres 2 1- Définition de l arborescence Une arborescence est une collection de nœuds reliés entre eux par des arcs. La collection peut être vide, cad l

Plus en détail

Compilation. Algorithmes d'analyse syntaxique

Compilation. Algorithmes d'analyse syntaxique Compilation Algorithmes d'analyse syntaxique Préliminaires Si A est un non-terminal et γ une suite de terminaux et de non-terminaux, on note : A γ si en partant de A on peut arriver à γ par dérivations

Plus en détail

OCL - Object Constraint Language

OCL - Object Constraint Language OCL - Object Constraint Language Laëtitia Matignon laetitia.matignon@univ-lyon1.fr Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object

Plus en détail

LES TYPES DE DONNÉES DU LANGAGE PASCAL

LES TYPES DE DONNÉES DU LANGAGE PASCAL LES TYPES DE DONNÉES DU LANGAGE PASCAL 75 LES TYPES DE DONNÉES DU LANGAGE PASCAL CHAPITRE 4 OBJECTIFS PRÉSENTER LES NOTIONS D ÉTIQUETTE, DE CONS- TANTE ET DE IABLE DANS LE CONTEXTE DU LAN- GAGE PASCAL.

Plus en détail

Recherche dans un tableau

Recherche dans un tableau Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6

Plus en détail

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2

Manuel d utilisation 26 juin 2011. 1 Tâche à effectuer : écrire un algorithme 2 éducalgo Manuel d utilisation 26 juin 2011 Table des matières 1 Tâche à effectuer : écrire un algorithme 2 2 Comment écrire un algorithme? 3 2.1 Avec quoi écrit-on? Avec les boutons d écriture........

Plus en détail

Génie Logiciel avec Ada. 4 février 2013

Génie Logiciel avec Ada. 4 février 2013 Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre

Plus en détail

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

TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile TP n 2 Concepts de la programmation Objets Master 1 mention IL, semestre 2 Le type Abstrait Pile Dans ce TP, vous apprendrez à définir le type abstrait Pile, à le programmer en Java à l aide d une interface

Plus en détail

Initiation à la Programmation en Logique avec SISCtus Prolog

Initiation à la Programmation en Logique avec SISCtus Prolog Initiation à la Programmation en Logique avec SISCtus Prolog Identificateurs Ils sont représentés par une suite de caractères alphanumériques commençant par une lettre minuscule (les lettres accentuées

Plus en détail

Algorithmique et Programmation, IMA

Algorithmique et Programmation, IMA Algorithmique et Programmation, IMA Cours 2 : C Premier Niveau / Algorithmique Université Lille 1 - Polytech Lille Notations, identificateurs Variables et Types de base Expressions Constantes Instructions

Plus en détail

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation

Travaux pratiques. Compression en codage de Huffman. 1.3. Organisation d un projet de programmation Université de Savoie Module ETRS711 Travaux pratiques Compression en codage de Huffman 1. Organisation du projet 1.1. Objectifs Le but de ce projet est d'écrire un programme permettant de compresser des

Plus en détail

Définitions. Numéro à préciser. (Durée : )

Définitions. Numéro à préciser. (Durée : ) Numéro à préciser (Durée : ) On étudie dans ce problème l ordre lexicographique pour les mots sur un alphabet fini et plusieurs constructions des cycles de De Bruijn. Les trois parties sont largement indépendantes.

Plus en détail

Arbres binaires de recherche

Arbres binaires de recherche 1 arbre des comparaisons 2 recherche dichotomique l'arbre est recalculé à chaque recherche 2 5 3 4 7 9 1 6 1 2 3 4 5 6 7 9 10 conserver la structure d'arbre au lieu de la reconstruire arbre binaire de

Plus en détail

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e

Expression des contraintes. OCL : Object C o n t r a i n t L a n g u a g e P r o b l é m a t i q u e OCL : O b j e c t C o n s t r a i n t L a n g u a g e Le langage de contraintes d UML Les différents diagrammes d UML permettent d exprimer certaines contraintes graphiquement

Plus en détail

Grammaires d unification

Grammaires d unification Cours sur le traitement automatique des langues (IV) Violaine Prince Université de Montpellier 2 LIRMM-CNRS Grammaires d unification Grammaire catégorielle Grammaire syntagmatique généralisée (GPSG) Les

Plus en détail

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur

Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Université Paris-Sud Licence d Informatique Informatique Théorique : Théorie des Langages, Analyse Lexicale, Analyse Syntaxique Jean-Pierre Jouannaud Professeur Adresse de l auteur : LIX École Polytechnique

Plus en détail

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte

Projet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes

Plus en détail

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

Cours d initiation à la programmation en C++ Johann Cuenin Cours d initiation à la programmation en C++ Johann Cuenin 11 octobre 2014 2 Table des matières 1 Introduction 5 2 Bases de la programmation en C++ 7 3 Les types composés 9 3.1 Les tableaux.............................

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

TP1 - Prise en main de l environnement Unix.

TP1 - Prise en main de l environnement Unix. Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents

Plus en détail

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR

Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains

Plus en détail

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml

Plan. Exemple: Application bancaire. Introduction. OCL Object Constraint Language Le langage de contraintes d'uml OCL Object Constraint Language Le langage de contraintes d'uml Plan 1. Introduction 2. Les principaux concepts d'ocl Object Constraint Language 1 Object Constraint Language 2 Exemple: une application bancaire

Plus en détail

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/

Calculabilité Cours 3 : Problèmes non-calculables. http://www.irisa.fr/lande/pichardie/l3/log/ Calculabilité Cours 3 : Problèmes non-calculables http://www.irisa.fr/lande/pichardie/l3/log/ Problèmes et classes de décidabilité Problèmes et classes de décidabilité Nous nous intéressons aux problèmes

Plus en détail

CH.6 Propriétés des langages non contextuels

CH.6 Propriétés des langages non contextuels CH.6 Propriétés des langages non contetuels 6.1 Le lemme de pompage 6.2 Les propriétés de fermeture 6.3 Les problèmes de décidabilité 6.4 Les langages non contetuels déterministes utomates ch6 1 6.1 Le

Plus en détail

Formula Negator, Outil de négation de formule.

Formula Negator, Outil de négation de formule. Formula Negator, Outil de négation de formule. Aymerick Savary 1,2, Mathieu Lassale 1,2, Jean-Louis Lanet 1 et Marc Frappier 2 1 Université de Limoges 2 Université de Sherbrooke Résumé. Cet article présente

Plus en détail

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

IN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en

Plus en détail

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions

Cours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental

Plus en détail

Résolution de systèmes linéaires par des méthodes directes

Résolution de systèmes linéaires par des méthodes directes Résolution de systèmes linéaires par des méthodes directes J. Erhel Janvier 2014 1 Inverse d une matrice carrée et systèmes linéaires Ce paragraphe a pour objet les matrices carrées et les systèmes linéaires.

Plus en détail

Initiation à la programmation en Python

Initiation à la programmation en Python I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de

Plus en détail

Rappels Entrées -Sorties

Rappels Entrées -Sorties Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk

Plus en détail

Organigramme / Algorigramme Dossier élève 1 SI

Organigramme / Algorigramme Dossier élève 1 SI Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué

Plus en détail

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

Info0101 Intro. à l'algorithmique et à la programmation. Cours 3. Le langage Java Info0101 Intro. à l'algorithmique et à la programmation Cours 3 Le langage Java Pierre Delisle, Cyril Rabat et Christophe Jaillet Université de Reims Champagne-Ardenne Département de Mathématiques et Informatique

Plus en détail

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.

Cours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle. Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures

Plus en détail

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources

SNT4U16 - Initiation à la programmation 2014-2015. TD - Dynamique de POP III - Fichiers sources SNT4U16 - Initiation à la programmation Licence SVT 2 ème année 2014-2015 TD - Dynamique de POP III - Fichiers sources contacts : mathias.gauduchon@univ-amu.fr, melika.baklouti@univ-amu.fr, xavier.giraud@univ-amu.fr,

Plus en détail

Algorithme. Table des matières

Algorithme. Table des matières 1 Algorithme Table des matières 1 Codage 2 1.1 Système binaire.............................. 2 1.2 La numérotation de position en base décimale............ 2 1.3 La numérotation de position en base binaire..............

Plus en détail

Compilation (INF 564)

Compilation (INF 564) Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation

Plus en détail

Représentation d un entier en base b

Représentation d un entier en base b Représentation d un entier en base b 13 octobre 2012 1 Prérequis Les bases de la programmation en langage sont supposées avoir été travaillées L écriture en base b d un entier est ainsi défini à partir

Plus en détail

Utilisation d objets : String et ArrayList

Utilisation d objets : String et ArrayList Chapitre 6 Utilisation d objets : String et ArrayList Dans ce chapitre, nous allons aborder l utilisation d objets de deux classes prédéfinies de Java d usage très courant. La première, nous l utilisons

Plus en détail

Pourquoi l apprentissage?

Pourquoi l apprentissage? Pourquoi l apprentissage? Les SE sont basés sur la possibilité d extraire la connaissance d un expert sous forme de règles. Dépend fortement de la capacité à extraire et formaliser ces connaissances. Apprentissage

Plus en détail

Les algorithmes de base du graphisme

Les algorithmes de base du graphisme Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............

Plus en détail

Initiation à l algorithmique

Initiation à l algorithmique Informatique S1 Initiation à l algorithmique procédures et fonctions 2. Appel d une fonction Jacques TISSEAU Ecole Nationale d Ingénieurs de Brest Technopôle Brest-Iroise CS 73862-29238 Brest cedex 3 -

Plus en détail

Cours d algorithmique pour la classe de 2nde

Cours d algorithmique pour la classe de 2nde Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage

Plus en détail

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot

Arithmétique binaire. Chapitre. 5.1 Notions. 5.1.1 Bit. 5.1.2 Mot Chapitre 5 Arithmétique binaire L es codes sont manipulés au quotidien sans qu on s en rende compte, et leur compréhension est quasi instinctive. Le seul fait de lire fait appel au codage alphabétique,

Plus en détail

Qualité du logiciel: Méthodes de test

Qualité du logiciel: Méthodes de test Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution

Plus en détail

Cours 1 : La compilation

Cours 1 : La compilation /38 Interprétation des programmes Cours 1 : La compilation Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr PPS - Université Denis Diderot Paris 7 2/38 Qu est-ce que la compilation? Vous avez tous déjà

Plus en détail

Rappels sur les suites - Algorithme

Rappels sur les suites - Algorithme DERNIÈRE IMPRESSION LE 14 septembre 2015 à 12:36 Rappels sur les suites - Algorithme Table des matières 1 Suite : généralités 2 1.1 Déition................................. 2 1.2 Exemples de suites............................

Plus en détail

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 TP1 : Initiation à Java et Eclipse Systèmes d Exploitation Avancés I. Objectifs du TP Ce TP est une introduction au langage Java. Il vous permettra de comprendre les

Plus en détail

1 Introduction au codage

1 Introduction au codage CélestineOscarDésiréAnatoleGastonEugène 1 Introduction au codage 1.1 Les ensembles L ensemble de tout les ensembles est Dieu lui-même. Kantor Ensemble des parties d un ensemble désigne l ensemble des sous-ensembles

Plus en détail

Fiche PanaMaths Calculs avec les fonctions sous Xcas

Fiche PanaMaths Calculs avec les fonctions sous Xcas Fiche PanaMaths Calculs avec les fonctions sous Xcas Cette fiche destinée aux élèves des classes de Terminale requiert un premier niveau de connaissance du logiciel Xcas. Définition d une fonction Fonctions

Plus en détail

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

Grandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite

Plus en détail

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT

Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Exercices types Algorithmique et simulation numérique Oral Mathématiques et algorithmique Banque PT Ces exercices portent sur les items 2, 3 et 5 du programme d informatique des classes préparatoires,

Plus en détail

Utilisation des tableaux sémantiques dans les logiques de description

Utilisation des tableaux sémantiques dans les logiques de description Utilisation des tableaux sémantiques dans les logiques de description IFT6281 Web Sémantique Jacques Bergeron Département d informatique et de recherche opérationnelle Université de Montréal bergerja@iro.umontreal.ca

Plus en détail

Fondements de l informatique Logique, modèles, et calculs

Fondements de l informatique Logique, modèles, et calculs Fondements de l informatique Logique, modèles, et calculs Cours INF423 de l Ecole Polytechnique Olivier Bournez Version du 20 septembre 2013 2 Table des matières 1 Introduction 9 1.1 Concepts mathématiques........................

Plus en détail

Les chaînes de caractères

Les chaînes de caractères Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il

Plus en détail

Cours de Programmation 2

Cours de Programmation 2 Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes

Plus en détail

Modèles à Événements Discrets. Réseaux de Petri Stochastiques

Modèles à Événements Discrets. Réseaux de Petri Stochastiques Modèles à Événements Discrets Réseaux de Petri Stochastiques Table des matières 1 Chaînes de Markov Définition formelle Idée générale Discrete Time Markov Chains Continuous Time Markov Chains Propriétés

Plus en détail

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN Les contenues de ce document sont la propriété exclusive de la société REVER. Ils ne sont transmis qu à titre d information et ne peuvent en aucun cas

Plus en détail

Gestion mémoire et Représentation intermédiaire

Gestion mémoire et Représentation intermédiaire Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,

Plus en détail

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications

Université Paris-Dauphine DUMI2E 1ère année, 2009-2010. Applications Université Paris-Dauphine DUMI2E 1ère année, 2009-2010 Applications 1 Introduction Une fonction f (plus précisément, une fonction réelle d une variable réelle) est une règle qui associe à tout réel x au

Plus en détail

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

Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation

Plus en détail

Chapitre 2. Eléments pour comprendre un énoncé

Chapitre 2. Eléments pour comprendre un énoncé Chapitre 2 Eléments pour comprendre un énoncé Ce chapitre est consacré à la compréhension d un énoncé. Pour démontrer un énoncé donné, il faut se reporter au chapitre suivant. Les tables de vérité données

Plus en détail

Débuter avec Excel. Excel 2007-2010

Débuter avec Excel. Excel 2007-2010 Débuter avec Excel Excel 2007-2010 Fabienne ROUX Conseils & Formation 10/04/2010 TABLE DES MATIÈRES LE RUBAN 4 LE CLASSEUR 4 RENOMMER LES FEUILLES DU CLASSEUR 4 SUPPRIMER DES FEUILLES D UN CLASSEUR 4 AJOUTER

Plus en détail

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE

ARDUINO DOSSIER RESSOURCE POUR LA CLASSE ARDUINO DOSSIER RESSOURCE POUR LA CLASSE Sommaire 1. Présentation 2. Exemple d apprentissage 3. Lexique de termes anglais 4. Reconnaître les composants 5. Rendre Arduino autonome 6. Les signaux d entrée

Plus en détail

La saisie d un texte

La saisie d un texte La saisie d un texte On utilise le clavier pour la saisie des textes. C est une partie importante du travail. Il est indispensable de respecter un certain nombre de règles pour que le travail soit plus

Plus en détail

Vérification de programmes et de preuves Première partie. décrire des algorithmes

Vérification de programmes et de preuves Première partie. décrire des algorithmes Vérification de programmes et de preuves Première partie. décrire des algorithmes Yves Bertot September 2012 1 Motivating introduction A partir des années 1940, il a été compris que l on pouvait utiliser

Plus en détail

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer

Exercices - Fonctions de plusieurs variables : corrigé. Pour commencer Pour commencer Exercice 1 - Ensembles de définition - Première année - 1. Le logarithme est défini si x + y > 0. On trouve donc le demi-plan supérieur délimité par la droite d équation x + y = 0.. 1 xy

Plus en détail

Enseignement secondaire technique

Enseignement secondaire technique Enseignement secondaire technique Régime technique Division technique générale Cycle moyen Informatique 11TG Nombre de leçons: 2.0 Nombre minimal de devoirs: - Langue véhiculaire: / Remarque générale:

Plus en détail

Cours 1 : Qu est-ce que la programmation?

Cours 1 : Qu est-ce que la programmation? 1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre

Plus en détail

chapitre 4 Nombres de Catalan

chapitre 4 Nombres de Catalan chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C

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

Factorisation Factoriser en utilisant un facteur commun Fiche méthode

Factorisation Factoriser en utilisant un facteur commun Fiche méthode Factorisation Factoriser en utilisant un facteur commun Fiche méthode Rappel : Distributivité simple Soient les nombres, et. On a : Factoriser, c est transformer une somme ou une différence de termes en

Plus en détail

CRÉER UN COURS EN LIGNE

CRÉER UN COURS EN LIGNE Anne DELABY CRÉER UN COURS EN LIGNE Deuxième édition, 2006, 2008 ISBN : 978-2-212-54153-3 2 Que recouvre le concept d interactivité? Dans une perspective de cours en ligne, une activité interactive est

Plus en détail

Licence ST Université Claude Bernard Lyon I LIF1 : Algorithmique et Programmation C Bases du langage C 1 Conclusion de la dernière fois Introduction de l algorithmique générale pour permettre de traiter

Plus en détail

Préparation à l examen EFA en Macro

Préparation à l examen EFA en Macro Préparation à l examen EFA en Macro Exercice sur les macros en Word / Excel Les questions suivantes doivent constituer un bref rafraîchissement et vous aider à situer le niveau de vos connaissances : Question

Plus en détail

Corrigé des TD 1 à 5

Corrigé des TD 1 à 5 Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un

Plus en détail

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009

Déroulement. Evaluation. Préambule. Définition. Définition. Algorithmes et structures de données 28/09/2009 Déroulement Algorithmes et structures de données Cours 1 et 2 Patrick Reuter http://www.labri.fr/~preuter/asd2009 CM mercredi de 8h00 à 9h00 (Amphi Bât. E, 3 ème étage) ED - Groupe 3 : mercredi, 10h30

Plus en détail

Algorithmes récursifs

Algorithmes récursifs Licence 1 MASS - Algorithmique et Calcul Formel S. Verel, M.-E. Voge www.i3s.unice.fr/ verel 23 mars 2007 Objectifs de la séance 3 écrire des algorithmes récursifs avec un seul test rechercher un élément

Plus en détail

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

Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Éléments d informatique Cours 3 La programmation structurée en langage C L instruction de contrôle if Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike

Plus en détail

Les nombres entiers. Durée suggérée: 3 semaines

Les nombres entiers. Durée suggérée: 3 semaines Les nombres entiers Durée suggérée: 3 semaines Aperçu du module Orientation et contexte Pourquoi est-ce important? Dans le présent module, les élèves multiplieront et diviseront des nombres entiers concrètement,

Plus en détail

Algorithmes d'apprentissage

Algorithmes d'apprentissage Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt

Plus en détail

Université de Lorraine Licence AES LIVRET DE STAGE LICENCE 2014-2015

Université de Lorraine Licence AES LIVRET DE STAGE LICENCE 2014-2015 Université de Lorraine Licence AES LIVRET DE STAGE LICENCE 2014-2015 1 LA REDACTION DU RAPPORT DE STAGE Le mémoire ne doit pas consister à reprendre tels quels des documents internes de l entreprise ou

Plus en détail

TP 1. Prise en main du langage Python

TP 1. Prise en main du langage Python TP. Prise en main du langage Python Cette année nous travaillerons avec le langage Python version 3. ; nous utiliserons l environnement de développement IDLE. Étape 0. Dans votre espace personnel, créer

Plus en détail

Introduction à MATLAB R

Introduction à MATLAB R Introduction à MATLAB R Romain Tavenard 10 septembre 2009 MATLAB R est un environnement de calcul numérique propriétaire orienté vers le calcul matriciel. Il se compose d un langage de programmation, d

Plus en détail

Théorie de la Programmation

Théorie de la Programmation Théorie de la Programmation http://perso.ens-lyon.fr/daniel.hirschkoff/thpr hop Programmation, Théorie de la programmation Langages de programmation I il existe de nombreux langages de programmation I

Plus en détail

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0

Plus en détail

Java Licence Professionnelle CISII, 2009-10

Java Licence Professionnelle CISII, 2009-10 Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation

Plus en détail

Initiation à LabView : Les exemples d applications :

Initiation à LabView : Les exemples d applications : Initiation à LabView : Les exemples d applications : c) Type de variables : Créer un programme : Exemple 1 : Calcul de c= 2(a+b)(a-3b) ou a, b et c seront des réels. «Exemple1» nom du programme : «Exemple

Plus en détail

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS = 7 10 1 + 5 10 2 + 2 10 3 8 Systèmes de numération INTRODUCTION SYSTÈMES DE NUMÉRATION POSITIONNELS Dans un système positionnel, le nombre de symboles est fixe On représente par un symbole chaque chiffre inférieur à la base, incluant

Plus en détail

Chapitre 1 I:\ Soyez courageux!

Chapitre 1 I:\ Soyez courageux! Chapitre 1 I:\ Soyez courageux! Pour ne rien vous cacher, le langage d'assembleur (souvent désigné sous le terme "Assembleur", bien que ce soit un abus de langage, puisque "Assembleur" désigne le logiciel

Plus en détail

Programmation en Caml pour Débutants

Programmation en Caml pour Débutants Programmation en Caml pour Débutants Arthur Charguéraud 6 Ju 2005 Ceci est une version léaire imprimable du cours, mais il est fortement conseillé d utiliser la version teractive, sur laquelle la plupart

Plus en détail

Vers l'ordinateur quantique

Vers l'ordinateur quantique Cours A&G Vers l'ordinateur quantique Données innies On a vu dans les chapîtres précédents qu'un automate permet de représenter de manière nie (et même compacte) une innité de données. En eet, un automate

Plus en détail

Algorithmique et programmation : les bases (VBA) Corrigé

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

Plus en détail

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004

Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004. Loc Jeudi 29/4/2004 Questionnaire d'examen final INF1101 Sigle du cours Nom : Signature : Prénom : Matricule : Sigle et titre du cours Groupe Trimestre INF1101 Algorithmes et structures de données Tous H2004 Professeur(s)

Plus en détail

Chapitre 2 Devine mon nombre!

Chapitre 2 Devine mon nombre! Python 3 : objectif jeux Chapitre 2 Chapitre 2 Devine mon nombre! 2.1. Thèmes abordés dans ce chapitre commentaires modules externes, import variables boucle while condition : if... elif... else la fonction

Plus en détail

Calcul Formel et Numérique, Partie I

Calcul Formel et Numérique, Partie I Calcul Formel et Numérique N.Vandenberghe nvdb@irphe.univ-mrs.fr Table des matières 1 Introduction à Matlab 2 1.1 Quelques généralités.......................... 2 2 Où trouver des informations 2 3 Opérations

Plus en détail

Algorithmique, Structures de données et langage C

Algorithmique, Structures de données et langage C UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure

Plus en détail

MIS 102 Initiation à l Informatique

MIS 102 Initiation à l Informatique MIS 102 Initiation à l Informatique Responsables et cours : Cyril Gavoille Catherine Pannier Matthias Robine Marc Zeitoun Planning : 6 séances de cours 5 séances de TD (2h40) 4 séances de TP (2h40) + environ

Plus en détail