Théorie des Langages
|
|
|
- Marin St-Louis
- il y a 10 ans
- Total affichages :
Transcription
1 Théorie des Langages Analyse syntaxique descendante Claude Moulin Université de Technologie de Compiègne Printemps 2010
2 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1)
3 Exemple : Grammaire T = {+,,, /, (, ), nb} ; V = {E, E, T, T, F} ; Axiome : E ; P = { 1. E TE 3. E TE 5. T FT 7. T /FT 9. F (E) } 2. E +TE 4. E ɛ 6. T FT 8. T ɛ 10. F nb Cette grammaire permet d écrire des expressions telles : (nb + nb) (nb - nb) / nb
4 Exemple : arbre Expression : nb nb + nb E T E F T + T E nb F T F T ɛ nb ɛ nb ɛ
5 Principe E T E F T + T nb F nb T ɛ F nb Expression : nb nb + nb T ɛ E ɛ E nb E T E T nb T F T F nb F nb T T F T F nb F nb T + T ɛ E + E + T E T nb T F T F nb F nb T $ T ɛ E $ E ɛ
6 Probléme S A w a... a Le symbole à dériver est A. Le prochain caractère à lire est a. La chaîne à analyser est de la forme : wav. w est déjà lue. Il faut déterminer la règle dont la partie gauche est A à utiliser à ce moment de la dérivation. PREM(A) SUIV(A) A X 1 X 2... X n Les premiers symboles que peux générer A contiennent ceux que peut générer X 1 Si X 1 est nullifiable, c est X 2 qu il faut considérer.
7 Analyse des règles Si X 1 ne génère pas ɛ waβ = wx 1 X 2... X n β = wa 1 γ 1 X 2... X n β. Si X 1 génère ɛ et X 2 ne génère pas ɛ waβ = wx 1 X 2... X n β = wx 2... X n β = wa 2 γ 2 X 3... X n β. Si A = ɛ, waβ = wβ. Le caractère a qui doit décider de la règle à appliquer est : soit dans les premiers caractères que A génère soit dans ses possibles suivants (β).
8 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1)
9 Premiers Les premiers se calculent sur les variables d une grammaire ainsi que sur les choix ou fin de choix. Un choix est une chaîne d éléments de V T figurant dans la partie droite d une règle de production. Une fin de choix α est une chaîne d au moins un élément de V T telle qu il existe X V T tel que Xα soit un choix ou une fin de choix.
10 Définition des Premiers Soit X V T. Définition PREM(X) est l ensemble des terminaux (y compris ɛ) qui peuvent commencer une chaîne dérivée de X. a PREM(X), si X = aβ. Soit α un choix ou une fin de choix. Définition PREM(α) est l ensemble des terminaux (y compris ɛ) qui peuvent commencer une chaîne dérivée de α. a PREM(α), si α = aβ
11 Initialisation a T, PREM(a) = {a}. A V, PREM(A) =. Pour tout choix ou fin de choix α non vide, PREM(α) =. PREM(ɛ) = ɛ.
12 Algorithme Pour chaque règle de production A α, ajouter les éléments de PREM(α) à ceux de PREM(A), y compris ɛ. Pour chaque choix ou fin de choix α de la forme Xβ, ajouter les éléments de PREM(X) à ceux de PREM(α), sauf ɛ. Lorsque PREM(X) contient ɛ, ajouter les éléments de PREM(β) à ceux de PREM(α) y compris ɛ. Répéter les phases précédentes tant que l un des PREM(α) est modifié.
13 Exemple T = {+,,, /, (, ), nb} ; V = {E, E, T, T, F} ; Axiome : E ; P = { 1. E TE 3. E TE 5. T FT 7. T /FT 9. F (E) } 2. E +TE 4. E ɛ 6. T FT 8. T ɛ 10. F nb
14 Choix particuliers +TE {+} -TE { } *FT { } /FT {/} (E) {(} L ensemble des premiers d un choix commençant par un terminal ne contient que ce terminal.
15 Construction 1. E TE 4. E ɛ 7. T /FT 2. E +TE 5. T FT 8. T ɛ E TE E T FT T F 3. E TE 6. T FT 9. F (E) 10. F nb
16 Construction 1. E TE 4. E ɛ 7. T /FT 2. E +TE 5. T FT 8. T ɛ 3. E TE 6. T FT 9. F (E) 10. F nb E TE E {+,, ɛ} règles 2, 3, 4 T FT {(, nb} à partir de F T {, /, ɛ} règles 6, 7, 8 F {(, nb} règles 9, 10
17 Construction 1. E TE 4. E ɛ 7. T /FT 2. E +TE 5. T FT 8. T ɛ 3. E TE 6. T FT 9. F (E) 10. F nb E TE {(, nb} à partir de T E {+,, ɛ} T {(, nb} règle 5 FT {(, nb} T {, /, ɛ} F {(, nb}
18 Construction 1. E TE 4. E ɛ 7. T /FT 2. E +TE 5. T FT 8. T ɛ 3. E TE 6. T FT 9. F (E) 10. F nb E {(, nb} règle 1 TE {(, nb} E {+,, ɛ} T {(, nb} FT {(, nb} T {, /, ɛ} F {(, nb}
19 Construction 1. E TE 4. E ɛ 7. T /FT 2. E +TE 5. T FT 8. T ɛ 3. E TE 6. T FT 9. F (E) 10. F nb E {(, nb} {(, nb} TE {(, nb} {(, nb} E {+,, ɛ} {+,, ɛ} T {(, nb} {(, nb} FT {(, nb} {(, nb} T {, /, ɛ} {, /, ɛ} F {(, nb} {(, nb}
20 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1)
21 Suivants Les suivants sont définis pour tous les non terminaux d une grammaire. X V. Définition SUIV(X) est l ensemble des terminaux qui peuvent suivre immédiatement X lors d une dérivation. a SUIV(X) s il existe un choix contenant Xa. Si un choix contient XYa et si Y est nullifiable alors a est un suivant de X.
22 Algorithme Pour toute variable A, SUIV(A) =. Ajouter un marqueur de fin de chaîne à l axiome ($ par exemple). Pour chaque règle A αbβ, ajouter les éléments de PREM(β) à ceux de SUIV(B), sauf ɛ le cas échéant. lorsque ɛ PREM(β), ajouter les éléments de SUIV(A) aux éléments de SUIV(B). Pour chaque règle A αb, ajouter les éléments de SUIV(A) aux éléments de SUIV(B). Répéter les 2 phases précédentes tant que l un des SUIV(A) est modifié.
23 Exemple E TE E +TE E TE E ɛ T FT T FT T /FT T ɛ F (E) F nb E {(, nb} FT {(, nb} TE {(, nb} T {, /, ɛ} E {+,, ɛ} F {(, nb} T {(, nb} Init 1 2 SUIV(A) E {$, )} {$, )} E {$, )} {$, )} T {+,, $} {+,, $, )} {+,, $, )} T {+,, $} {+,, $, )} {+,, $, )} F {, /, +,, $} {, /, +,, $, )} {, /, +,, $, )}
24 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1)
25 Table d analyse Une table d analyse est un tableau M à deux dimensions qui indique, pour chaque variable A et chaque terminal a (ainsi que $), la règle de production à appliquer. Algorithme de construction : Pour chaque production A α pour tout a PREM(α) et a ɛ ajouter A α dans la case M[A, a] si ɛ PREM(α), alors pour chaque b SUIV(A) ajouter A α dans la case M[A, b]
26 Exemple E TE E +TE E TE E ɛ T FT T FT T /FT T ɛ F (E) F nb E {(, nb} FT {(, nb} TE {(, nb} T {, /, ɛ} E {+,, ɛ} F {(, nb} T {(, nb} SUIV(A) E {$, )} T {+,, $, )} + - * / ( ) nb $ E 1 1 E T 5 5 T F 9 10
27 Automate P = (Q, Σ, Γ, δ, q 0, Z 0, F) : Q = {q} l ensemble des états. Σ = T l ensemble des symboles d entrée. Γ = T V l alphabet de pile. δ la fonction de transition. q 0 = q l état initial. Z 0 = $ le symbole de fond de la pile. on empile aussi le symbole S F = acceptation par pile vide.
28 Transition Match : (q, ax, aγ, y) (q, x, γ, y) Le symbole d entrée est le symbole de sommet de la pile. Il est consommé et le sommet de la pile est dépilé. Production : (q, bx, Aγ, y) (q, bx, αγ, yy i ) - Le sommet de la pile A. Règle : A α (M[A, b]). - A est remplacé au sommet de la pile par le choix de la règle, en empilant à partir des symboles les plus à droite. - En sortie le rang y i, de la règle utilisée, est ajouté. Acceptation : (q, $, $, y) (q, ɛ, ɛ, y)
29 Analyse de : * * / ( ) nb $ E 1 1 E T 5 5 T F 9 10 Entrée Pile Transition Sortie * 5$ E$ Production * 5$ TE $ Production 1, * 5$ FT E $ Production 1, 5, * 5$ nb T E $ Match 1, 5, 10
30 Analyse de : * * / ( ) nb $ E 1 1 E T 5 5 T F 9 10 Entrée Pile Transition Sortie + 4 * 5$ T E $ Production 1, 5, 10, * 5$ E $ Production 1, 5, 10, 8, * 5$ +TE $ Match 1, 5, 10, 8, 2
31 Analyse de : * * / ( ) nb $ E 1 1 E T 5 5 T F 9 10 Entrée Pile Transition Sortie 4 * 5$ TE $ Production 1, 5, 10, 8, 2, 5 4 * 5$ FT E $ Production 1, 5, 10, 8, 2, 5, 10 4 * 5$ nb T E $ Match 1, 5, 10, 8, 2, 5, 10 * 5$ T E $ Production 1, 5, 10, 8, 2, 5, 10, 6 * 5$ *FT E $ Match 1, 5, 10, 8, 2, 5, 10, 6
32 Analyse de : * * / ( ) nb $ E 1 1 E T 5 5 T F 9 10 Entrée Pile Transition Sortie 5$ FT E $ Production 1, 5, 10, 8, 2, 5, 10, 6, 10 5$ nb T E $ Match 1, 5, 10, 8, 2, 5, 10, 6, 10 $ T E $ Production 1, 5, 10, 8, 2, 5, 10, 6, 10, 8 $ E $ Production 1, 5, 10, 8, 2, 5, 10, 6, 10, 8, 4 $ $ Accept 1, 5, 10, 8, 2, 5, 10, 6, 10, 8, 4
33 Sommaire 1 Principe 2 Premiers 3 Suivants 4 Analyse 5 Grammaire LL(1)
34 Grammaire LL(1) Définition Une grammaire est dite LL(1) lorsque sa table d analyse ne comporte pas plusieurs règles de production pour une même cellule. Une grammaire ambiguë, récursive à gauche, non factorisée à gauche, n est pas LL(1).
35 Récursivité à gauche Grammaire immédiatement récursive à gauche : Une grammaire est immédiatement récursive à gauche si elle contient une règle de la forme : A Aα Grammaire récursive à gauche : Une grammaire est récursive à gauche si elle contient une variable A se dérivant en Aα (A = Aα).
36 Conflit Une grammaire immédiatement récursive à gauche n est pas LL(1). A Aα A β Pour chaque premier(β), il existe au moins deux règles applicables. La grammaire n est pas LL(1). Une grammaire récursive à gauche n est pas LL(1). A = Aα A β Une grammaire avec une récursivité à gauche cachée n est pas LL(1). A = αaβ et α = ɛ
37 Elimination Si A Aα et A β A produit des chaînes de la forme : βα. Pour éliminer la récursivité à gauche immédiate, il suffit d ajouter une variable A et de remplacer les règles telles que :. A Aα. A β par les règles :. A βa. A αa ɛ
38 Factorisation à gauche Une grammaire n est pas factorisée à gauche, si deux productions de la même variable A commencent par le même symbole. Une grammaire non factorisée à gauche ne peut pas être LL(1). A Xα et A Xβ sont deux règles applicables pour chaque prem(x).
39 Algorithme Pour chaque variable A Trouver α le plus long préfixe commun à deux ou plusieurs de ses choix si α ɛ Remplacer A αβ 1... αβ n γ 1... γ p (les γ i ne commencent pas par α) par : A αa γ 1... γ p A β 1... β n Recommencer tant que deux productions commencent par le même symbole.
40 Conflit Premier-Premier 1 S aab 2 A cd 3 A ce PREM(S) = { a } SUIV(S) = {$} PREM(A) = { c } SUIV(A) = {b} Table d analyse a b c d $ S 1 A 2 ; 3 Grammaire non-factorisée à gauche. Ex : chaîne acdb.
41 Autre conflit Premier-Premier 1 S atd 2 T Tb 3 T c PREM(S) = { a } SUIV(S) = {$} PREM(T) = { c } SUIV(T) = {b, d} Table d analyse a b c d $ S 1 T 2 ; 3 Grammaire récursive à gauche. Ex : chaîne acbd.
42 Conflit Premier-Suivant 1 S atb 2 T bt 3 T ɛ PREM(S) = { a } SUIV(S) = {$} PREM(T) = { b, ɛ } SUIV(T) = {b} Table d analyse a b $ S 1 T 2 ; 3 T nullifiable et PREM(T) SUIV(T). Ex : abb.
43 Conclusion Une grammaire est LL(1) lorsque : 1 Il n y a pas de conflit Premier-Premier. Pour chaque non terminal, les premiers des choix doivent être tous distincts. 2 Il n y a pas de conflit Premier-Suivant. Pour chaque non terminal ayant un choix nullifiable, les Premier et Suivant doivent être distincts. 3 Il n y a pas de choix nullifiables multiples.
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-
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
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
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
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
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
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
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
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
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
SOMMAIRE. Travailler avec les requêtes... 3
Access Les requêtes SOMMAIRE Travailler avec les requêtes... 3 A) Créer une requête sélection en mode QBE... 3 B) Exécuter une requête à partir du mode Modifier (QBE)... 3 C) Passer du mode Feuille de
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).............
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
F7n COUP DE BOURSE, NOMBRE DÉRIVÉ
Auteur : S.& S. Etienne F7n COUP DE BOURSE, NOMBRE DÉRIVÉ TI-Nspire CAS Mots-clés : représentation graphique, fonction dérivée, nombre dérivé, pente, tableau de valeurs, maximum, minimum. Fichiers associés
1.1 Rappels sur le produit cartésien... 1. 1.2 Relations... 3. 1.3 Graphes dirigés... 8. 1.4 Arbres... 12. 1.5 Exercices... 19. 2.1 Motivation...
Table des matières 1 Relations et graphes 1 1.1 Rappels sur le produit cartésien.................... 1 1.2 Relations.................................. 3 1.3 Graphes dirigés..............................
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
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........
Algorithmique et Programmation
École Supérieure d Ingénieurs de Poitiers Gea Algorithmique et Programmation Laurent Signac ii Algorithmique et programmation Gea Table des matières Avant Propos v Structures de données Notion de pointeur..............................................
Baccalauréat ES/L Amérique du Sud 21 novembre 2013
Baccalauréat ES/L Amérique du Sud 21 novembre 2013 A. P. M. E. P. EXERCICE 1 Commun à tous les candidats 5 points Une entreprise informatique produit et vend des clés USB. La vente de ces clés est réalisée
Intelligence Artificielle et Systèmes Multi-Agents. Badr Benmammar [email protected]
Intelligence Artificielle et Systèmes Multi-Agents Badr Benmammar [email protected] Plan La première partie : L intelligence artificielle (IA) Définition de l intelligence artificielle (IA) Domaines
STAGE IREM 0- Premiers pas en Python
Université de Bordeaux 16-18 Février 2014/2015 STAGE IREM 0- Premiers pas en Python IREM de Bordeaux Affectation et expressions Le langage python permet tout d abord de faire des calculs. On peut évaluer
Programmation assembleur : aperçu
Assembleur : Younès EL AMRANI. 1 Programmation assembleur : aperçu Programmation en assembleur : NASM Module M14 Semestre 4 Printemps 2010 Equipe pédagogique : Younès El Amrani, Abdelhakim El Imrani, Faissal
CAISSE ENREGISTREUSE ELECTRONIQUE SE-G1
AISSE ENREGISTREUSE ELETRONIQUE SE-G PROGRAMMATION SIMPLIFIEE 20/0/204 SOMMAIRE PROGRAMMATION SIMPLIFIEE.... Introduction... 2. Programmation... 4 Initialisation de la caisse :... 4 Programmation de base
TP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
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 [email protected]
Chapitre 2 Le problème de l unicité des solutions
Université Joseph Fourier UE MAT 127 Mathématiques année 2011-2012 Chapitre 2 Le problème de l unicité des solutions Ce que nous verrons dans ce chapitre : un exemple d équation différentielle y = f(y)
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement
C++ COURS N 2 : CLASSES, DONNÉES ET FONCTIONS MEMBRES Classes et objets en C++ Membres d'une classe Spécification d'une classe Codage du comportement des objets d'une classe Utilisation d'une classe Droit
Systèmes déductifs DEA D INFORMATIQUE UNIVERSITÉ BORDEAUX 1. Systèmes déductifs (Retoré) Plan Début Fin Préc. Suiv.
Systèmes déductifs DEA D INFORMATIQUE UNIVERSITÉ BORDEAUX 1 Plan 1 Liens avec d autres domaines de l informatique............... 3 2 La déduction naturelle de base (conjonction, implication)....... 4 3
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
Chapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
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........................
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.
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.
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
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,
É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
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
OCL - Object Constraint Language
OCL - Object Constraint Language Laëtitia Matignon [email protected] Département Informatique - Polytech Lyon Université Claude Bernard Lyon 1 2012-2013 Laëtitia Matignon SIMA - OCL - Object
Classes et Objets en Ocaml.
Classes et Objets en Ocaml. Didier Rémy 2001-2002 http://cristal.inria.fr/ remy/mot/2/ http://www.enseignement.polytechnique.fr/profs/informatique/didier.remy/mot/2/ Cours Exercices Slide 1 1. Objets 2.
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 -
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
Calculer avec Sage. Revision : 417 du 1 er juillet 2010
Calculer avec Sage Alexandre Casamayou Guillaume Connan Thierry Dumont Laurent Fousse François Maltey Matthias Meulien Marc Mezzarobba Clément Pernet Nicolas Thiéry Paul Zimmermann Revision : 417 du 1
Centre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position
Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus
TP1 : Initiation à l algorithmique (1 séance)
Université de Versailles Vanessa Vitse IUT de Vélizy - Algorithmique 2006/2007 TP1 : Initiation à l algorithmique (1 séance) 1 Prise en main de l environnement Unix : rappels et compléments Le but de la
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
L ARBORESCENCE. Qu est-ce qu un dossier? L arborescence?
L ARBORESCENCE Qu est-ce qu un dossier? Un dossier est une pochette vide dans laquelle on peut disposer des documents créés à l aide de l outil informatique. Comme les systèmes utilisés dans la vie courante
GUIDE DU NOUVEL UTILISATEUR
GUIDE DU NOUVEL UTILISATEUR Le but de ce tutoriel est de vous guider à travers les fonctions de base de votre logiciel. Nous partirons du principe que votre terminal de pointage est déjà installé. A la
Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155)
Architecture des ordinateurs : Programmation des processeurs avec l'environnement «y86» (INF155) F. Pellegrini Université Bordeaux 1 Ce document est copiable et distribuable librement et gratuitement à
Choisir le mode d envoi souhaité. Option 1 : Envoyer un SMS à un nombre réduit de numéros (0 10 )
Ce service permet d effectuer des envois de SMS texte à partir d une source de numéros de GSM (Maroc Telecom, Meditel,INWI ou Etrangers) sous format texte ou sous format Excel. Il est nécessaire au préalable
Initiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
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
Your Detecting Connection. Manuel de l utilisateur. [email protected]
Your Detecting Connection Manuel de l utilisateur [email protected] 4901-0128-5 ii Table des matières Table des matières Installation... 4 Conditions d utilisation de XChange 2...4 Définir vos Préférences
Remise à niveau d un programme JAVA du domaine public
Jean-Baptiste VIGUIER 12 septembre 2002 DCEM 2 [email protected] Remise à niveau d un programme JAVA du domaine public Dossier réalisé pour le laboratoire d oncogénétique Docteur P.GORRY MCU-PH institut
Architecture des ordinateurs TD1 - Portes logiques et premiers circuits
Architecture des ordinateurs TD1 - Portes logiques et premiers circuits 1 Rappel : un peu de logique Exercice 1.1 Remplir la table de vérité suivante : a b a + b ab a + b ab a b 0 0 0 1 1 0 1 1 Exercice
Domaine Name Service ( DNS )
Domaine Name Service ( DNS ) DOMAINE NAME SERVICE ( DNS )...2 1.) Qu'est ce qu un Service de Nom de Domaine?...2 1.1) Pourquoi utiliser un DNS...2 Historique...2 Dans quel cas l utiliser...2 1.2) Fonctionnement
LE MODELE CONCEPTUEL DE DONNEES
LE MODELE CONCEPTUEL DE DONNEES Principe : A partir d'un cahier des charges, concevoir de manière visuelle les différents liens qui existent entre les différentes données. Les différentes étapes de réalisation.
SUPPORT DE COURS. Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : [email protected]
Dr. Omari Mohammed Maître de Conférences Classe A Université d Adrar Courriel : [email protected] SUPPORT DE COURS Matière : Algorithmiques et Structures de Données 1 Niveau : 2 ème Année Licence en Informatique
par Denis-Charles Cisinski & Georges Maltsiniotis
LA CATÉGORIE Θ DE JOYAL EST UNE CATÉGORIE TEST par Denis-Charles Cisinski & Georges Maltsiniotis Résumé. Le but principal de cet article est de prouver que la catégorie cellulaire Θ de Joyal est une catégorie
Traduction des Langages : Le Compilateur Micro Java
BARABZAN Jean-René OUAHAB Karim TUCITO David 2A IMA Traduction des Langages : Le Compilateur Micro Java µ Page 1 Introduction Le but de ce projet est d écrire en JAVA un compilateur Micro-Java générant
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
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
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
Baccalauréat ES Pondichéry 7 avril 2014 Corrigé
Baccalauréat ES Pondichéry 7 avril 204 Corrigé EXERCICE 4 points Commun à tous les candidats. Proposition fausse. La tangente T, passant par les points A et B d abscisses distinctes, a pour coefficient
L informatique en BCPST
L informatique en BCPST Présentation générale Sylvain Pelletier Septembre 2014 Sylvain Pelletier L informatique en BCPST Septembre 2014 1 / 20 Informatique, algorithmique, programmation Utiliser la rapidité
Corrigé du baccalauréat S Asie 21 juin 2010
Corrigé du baccalauréat S Asie juin 00 EXERCICE Commun à tous les candidats 4 points. Question : Le triangle GBI est : Réponse a : isocèle. Réponse b : équilatéral. Réponse c : rectangle. On a GB = + =
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
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 [email protected] ibrahimguelzim.atspace.co.uk
Structure d un programme
Architecture des ordinateurs Cours 6 Structure d un programme 3 décembre 2012 Archi 1/30 Programme en Assembleur Archi 2/30 Sections de données programme en assembleur = fichier texte (extension.asm) organisé
Manuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer.
Manuel v. 6sV Simplement surfer. Simplement cliquer. Simplement bloguer. Sommaire 1. Se loguer 2. Ta place de travail (Tableau de bord) 3. Créer ton article 3.1«Ajouter» un article 3.2 Ta feuille de papier
Cours de Programmation en Langage Synchrone SIGNAL. Bernard HOUSSAIS IRISA. Équipe ESPRESSO
Cours de Programmation en Langage Synchrone SIGNAL Bernard HOUSSAIS IRISA. Équipe ESPRESSO 24 septembre 2004 TABLE DES MATIÈRES 3 Table des matières 1 Introduction 5 1.1 La Programmation Temps Réel.........................
Licence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
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)
1/4 Objectif de ce cours /4 Objectifs de ce cours Introduction au langage C - Cours Girardot/Roelens Septembre 013 Du problème au programme I passer d un problème exprimé en français à la réalisation d
Aide Webmail. L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels.
Aide Webmail 1. Découverte de l environnement : L environnement de RoundCube est très intuitif et fonctionne comme la plupart des logiciels de messagerie traditionnels. 1. La barre d application (1) Les
Apprentissage Automatique
Apprentissage Automatique Introduction-I [email protected] www.lia.univ-avignon.fr Définition? (Wikipedia) L'apprentissage automatique (machine-learning en anglais) est un des champs
Chap III : Les tableaux
Chap III : Les tableaux Dans cette partie, on va étudier quelques structures de données de base tels que : Les tableaux (vecteur et matrice) Les chaînes de caractères LA STRUCTURE DE TABLEAU Introduction
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
Évaluation et implémentation des langages
Évaluation et implémentation des langages Les langages de programmation et le processus de programmation Critères de conception et d évaluation des langages de programmation Les fondations de l implémentation
Exercices - Polynômes : corrigé. Opérations sur les polynômes
Opérations sur les polynômes Exercice 1 - Carré - L1/Math Sup - Si P = Q est le carré d un polynôme, alors Q est nécessairement de degré, et son coefficient dominant est égal à 1. On peut donc écrire Q(X)
PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel. 4 24 12 24 CC + ET réseaux
PROGRAMME DETAILLE du Master IRS Parcours en première année en apprentissage Unités d Enseignement (UE) 1 er semestre ECTS Charge de travail de l'étudiant Travail personnel Modalités de contrôle des connaissances
Les équations différentielles
Les équations différentielles Equations différentielles du premier ordre avec second membre Ce cours porte exclusivement sur la résolution des équations différentielles du premier ordre avec second membre
Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré FORMAV
Mathématiques Première L, ES, S, Concours Post-Bac Equations et inéquations du second degré Méthode et exercices corrigés générés aléatoirement Pour un meilleur rendu ouvrir ce document avec TeXworks FORMAV
Langage SQL (1) 4 septembre 2007. IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes
Langage SQL (1) Sébastien Limet Denys Duchier IUT Orléans 4 septembre 2007 Notions de base qu est-ce qu une base de données? SGBD différents type de bases de données quelques systèmes existants Définition
La fonction exponentielle
DERNIÈRE IMPRESSION LE 2 novembre 204 à :07 La fonction exponentielle Table des matières La fonction exponentielle 2. Définition et théorèmes.......................... 2.2 Approche graphique de la fonction
Réalisabilité et extraction de programmes
Mercredi 9 mars 2005 Extraction de programme: qu'est-ce que c'est? Extraire à partir d'une preuve un entier x N tel que A(x). π x N A(x) (un témoin) (En fait, on n'extrait pas un entier, mais un programme
introduction Chapitre 5 Récursivité Exemples mathématiques Fonction factorielle ø est un arbre (vide) Images récursives
introduction Chapitre 5 Images récursives http ://univ-tln.fr/~papini/sources/flocon.htm Récursivité http://www.poulain.org/fractales/index.html Image qui se contient elle-même 1 Exemples mathématiques
Correction TD Algorithmique 5.3 Pile - 5.4 Liste 5.3 Pile
Correction TD Algorithmique 5.3 Pile - 5.4 Liste 5.3 Pile Classe Pile var sommet : entier var vals : Tableau Methode Pile() vals nouveau Tableau (?) sommet -1 Methode estvide() :booléen Renvoie
Le langage SQL Rappels
Le langage SQL Rappels Description du thème : Présentation des principales notions nécessaires pour réaliser des requêtes SQL Mots-clés : Niveau : Bases de données relationnelles, Open Office, champs,
Conception. Génie Logiciel. Renaud Marlet. LaBRI / INRIA http://www.labri.fr/~marlet. (d'après A.-M. Hugues) màj 17/04/2007
1 Génie Logiciel (d'après A.-M. Hugues) Conception Renaud Marlet LaBRI / INRIA http://www.labri.fr/~marlet màj 17/04/2007 2 Position dans le cycle de vie Contexte : étant donnée une spécification (ce que
Mesurer les performances (CPU) sous Linux
Titre : Mesurer les performances (CPU) sous Linux Date : 22/07/2015 Page : 1/7 Mesurer les performances (CPU) sous Linux Résumé : Il existe des outils permettant de tracer les temps CPU utilisés (profiling).
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.............................
Correction du Baccalauréat S Amérique du Nord mai 2007
Correction du Baccalauréat S Amérique du Nord mai 7 EXERCICE points. Le plan (P) a une pour équation cartésienne : x+y z+ =. Les coordonnées de H vérifient cette équation donc H appartient à (P) et A n
Les systèmes de gestion de version
Les systèmes de gestion de version Matthieu Herrb Envol 2010 http://homepages.laas.fr/matthieu/talks/envol10-sgv.pdf Systèmes de gestion de version - kesako? Logiciel permettant de gérer l historique des
Note de cours. Introduction à Excel 2007
Note de cours Introduction à Excel 2007 par Armande Pinette Cégep du Vieux Montréal Excel 2007 Page: 2 de 47 Table des matières Comment aller chercher un document sur CVMVirtuel?... 8 Souris... 8 Clavier
ALGORITHMIQUE ET PROGRAMMATION En C
Objectifs ALGORITHMIQUE ET PROGRAMMATION Une façon de raisonner Automatiser la résolution de problèmes Maîtriser les concepts de l algorithmique Pas faire des spécialistes d un langage Pierre TELLIER 2
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
INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies
INF 232: Langages et Automates Travaux Dirigés Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies Année Académique 2013-2014 Année Académique 2013-2014 UNIVERSITÉ JOSEPH
Comment utiliser RoundCube?
Comment utiliser RoundCube? La messagerie RoundCube est très intuitive et fonctionne comme la plupart des logiciels de messagerie traditionnels. A. Découverte de l'environnement 1/ La barre d application
FICHE UE Licence/Master Sciences, Technologies, Santé Mention Informatique
NOM DE L'UE : Algorithmique et programmation C++ LICENCE INFORMATIQUE Non Alt Alt S1 S2 S3 S4 S5 S6 Parcours : IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques) MASTER INFORMATIQUE Non
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
