Exercices dirigés séance n 1

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

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

Traduction des Langages : Le Compilateur Micro Java

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme

Le chiffre est le signe, le nombre est la valeur.

Cours 1 : La compilation

Rappels Entrées -Sorties

ACTIVITÉ DE PROGRAMMATION

Glossaire des nombres

Évaluation et implémentation des langages

«Dire et écrire» pour réaliser une composition en travail collaboratif en géographie. Agnès Dullin, lycée J. Racine 20 rue du Rocher, Paris

Cours 1 : Qu est-ce que la programmation?

Les structures. Chapitre 3

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

Chapitre 10 Arithmétique réelle

STAGE IREM 0- Premiers pas en Python

M06/5/COMSC/SP1/FRE/TZ0/XX INFORMATIQUE NIVEAU MOYEN ÉPREUVE 1. Mardi 2 mai 2006 (après-midi) 1 heure 30 minutes INSTRUCTIONS DESTINÉES AUX CANDIDATS

Qu est-ce que le relevé de compte?

1. Structure d'un programme FORTRAN 95

Définition 0,752 = 0,7 + 0,05 + 0,002 SYSTÈMES DE NUMÉRATION POSITIONNELS =

NOM : Prénom : Date de naissance : Ecole : CM2 Palier 2

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

LES TYPES DE DONNÉES DU LANGAGE PASCAL

Attestation de maîtrise des connaissances et compétences au cours moyen deuxième année

TP 1. Prise en main du langage Python

Cégep de Saint Laurent Direction des communications et Direction des ressources technologiques. Projet WebCSL : Guide de rédaction web

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

Environnements et Outils de Développement Cours 1 Introduction

Chapitre I Notions de base et outils de travail

Compilation (INF 564)

Initiation à l algorithmique

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

Lhopitault Aurora PES 09 février Unité d apprentissage : Les fruits. Unité d apprentissage : les fruits séance 1

Maple: premiers calculs et premières applications

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

ACCÈS SÉMANTIQUE AUX BASES DE DONNÉES DOCUMENTAIRES

Concevoir sa stratégie de recherche d information

Diapo 1. Objet de l atelier. Classe visée. Travail en co-disciplinarité (identité et origine académique des IEN)

Enseigner les Lettres avec les TICE

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

Compléments de documentation Scilab : affichage de texte et formatage de nombres

Python - introduction à la programmation et calcul scientifique

majuscu lettres accent voyelles paragraphe L orthographe verbe >>>, mémoire préfixe et son enseignement singulier usage écrire temps copier mot

Règles d élaboration d une évaluation par Questions à Choix Multiple Joël LECHEVALLIER 1

Les bases de données Page 1 / 8

Solutions du chapitre 4

eduscol Ressources pour la voie professionnelle Français Ressources pour les classes préparatoires au baccalauréat professionnel

Seconde Généralités sur les fonctions Exercices. Notion de fonction.

Le modèle standard, SPE (1/8)

Compétences en fin de maternelle Comparer des quantités.

Grammaires d unification

Physique Chimie. Utiliser les langages scientifiques à l écrit et à l oral pour interpréter les formules chimiques

Compter à Babylone. L écriture des nombres

Date : Note /20 : EVALUATION Nom : Prénom : Classe : Traitement sur mots

Fonctions linéaires et affines. 1 Fonctions linéaires. 1.1 Vocabulaire. 1.2 Représentation graphique. 3eme

Fiche pédagogique : ma famille et moi

SIP. Plan. Introduction Architecture SIP Messages SIP Exemples d établissement de session Enregistrement

Cours d Algorithmique et de Langage C v 3.0

Indications pour une progression au CM1 et au CM2

Introduction à EasyLanguage

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

Interpréteur d algèbre relationnelle

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

5.3. Bande numérique cartes numération et cartes à points pour apprendre les nombres de 0 à 99

Représentation d un entier en base b

EXERCICES DE REVISIONS MATHEMATIQUES CM2

Programmation Web. Madalina Croitoru IUT Montpellier

Logique : ENSIIE 1A - contrôle final

Séance 0 : Linux + Octave : le compromis idéal

Quelques éléments de compilation en C et makefiles

Langue, techniques de rédaction et correction d épreuves (412-2A1-LG)

TP1 : Initiation à Java et Eclipse

ALGORITHMIQUE ET PROGRAMMATION En C

Générer du code à partir d une description de haut niveau

TP1 : Initiation à Java et Eclipse

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

Théorie des Langages

UNITÉS ET MESURES UNITÉS DE MESURE DES LONGUEURS. Dossier n 1 Juin 2005

Guide à destination des Conseillers pédagogiques pour accompagner la séance Groupe TICE 34

INFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09

Langage SQL (1) 4 septembre IUT Orléans. Introduction Le langage SQL : données Le langage SQL : requêtes

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

OPÉRATIONS SUR LES FRACTIONS

Linked Open Data. Le Web de données Réseau, usages, perspectives. Eric Charton. Eric Charton

Algorithmique et Programmation, IMA

Document d aide au suivi scolaire

I- Définitions des signaux.

INF 232: Langages et Automates. Travaux Dirigés. Université Joseph Fourier, Université Grenoble 1 Licence Sciences et Technologies

USTL - Licence ST-A 1ère année Initiation à la programmation TP 1

La question est : dans 450 combien de fois 23. L opération est donc la division. Le diviseur. Le quotient

Priorités de calcul :

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

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

MATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN

MO-Call pour les Ordinateurs. Guide de l utilisateur

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

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

TP, première séquence d exercices.

Consigne : je remplis le tableau en tenant compte des informations de la ligne supérieure et de la colonne de gauche (droite pour les gauchers)

Transcription:

Exercices dirigés séance n 1 Exercice 1 : compilation, analyse d un programme On définit le langage simplifié suivant au moyen de règles BNF : <phrase> ::= <déclaration> <instruction> <déclaration> ::= <identificateur> : <type> ; <type> ::= réel entier <instruction> ::= <identificateur> = <nombre> ; <nombre> ::= <nombre entier> <nombre réel> Les identificateurs sont des unités lexicales constituées d une lettre. Les nombres entiers sont des unités lexicales constituées d un chiffre et les nombres réels des unités lexicales constituées de deux chiffres séparés par une virgule. Rappeler les différentes phases de l analyse d un programme et leur rôle. Question 2 : analyse lexicale Un chiffre et une lettre sont définis par : <chiffre> ::= 0 1 2. 9 <lettre> ::= A B Z o Définir sous forme de règles BNF identificateur, nombre entier et nombre réel. o Quelles sont les unités lexicales du langage autres que identificateur, nombre entier, nombre réel? L espace est sans signification mais ne peut se trouver à l intérieur d une unité lexicale. Faire l analyse lexicale de chaque ligne (phrase) du programme : A : reel $ = A 5,3,2 ; A B = 6,2 ; Pour cela, on recopiera les lignes en encadrant chaque unité lexicale reconnue par l analyseur et on identifiera les erreurs lexicales en justifiant pourquoi ce sont des erreurs. VARI - Ed n 1 - grammaires 1

Question 3 : analyse syntaxique On considère le programme suivant lexicalement correct : A : reel ; = A 5,3 ; A B = 6,2 ; Décrire sous forme d arbres, l analyse syntaxique de chaque ligne du programme. On commentera les erreurs syntaxiques rencontrées. Question 4 : analyse sémantique On considère le programme suivant lexicalement et syntaxiquement correct : A : réel ; A = 5,3 ; B = 6,2 ; Un programme est en fait défini syntaxiquement comme une suite de déclarations, suivie d une suite d instructions : <programme> ::= {<déclaration>} {<instruction>} Le programme ci-dessus est correct vis à vis de cette définition. On introduit les règles suivantes pour l analyse sémantique : - tout identificateur utilisé dans une instruction doit être déclaré. - dans une instruction, l identificateur à gauche du = et le nombre à droite doivent être de même type. Quelles sont les erreurs signalées par l analyse sémantique du programme? Justifier la réponse. VARI - Ed n 1 - grammaires 2

Exercice 2 : une grammaire pour exprimer des dates On souhaite écrire une grammaire pour définir un petit langage permettant d exprimer des dates sous les formes suivantes : jj/mm/aaaa mm/jj/aaaa jj mois aaaa mois jj aaaa Les symboles du vocabulaire terminal de ce langage sont les caractères alphanumériques. Parmi les dates qui suivent, lesquelles seraient valides dans ce langage : 12/08/1992,13/15/2000,05/30/2002,08 juillet 1954,juin 43 1912, avril 23 1964,38/09/3456 Question 2 Ecrire une grammaire pour ce langage VARI - Ed n 1 - grammaires 3

Exercice 3 : une grammaire simplifiée pour les expressions booléennes <expr_bool> ::= <facteur> or <expr_bool> <facteur> <facteur> ::= <terme> and <facteur> <terme> <terme> ::= <identificateur> <valeur> (<expr_bool>) not <terme> <identificateur> ::= <lettre>{<lettre>} <valeur> ::= vrai faux <lettre> ::= a z Les expressions suivantes sont elles syntaxiquement valides? a and b or not (a or c) a and (b or not a) or c Question 2 Exprimer l analyse des expressions précédentes sous la forme d arbres syntaxiques. Question 3 Evaluer les expressions ci-dessus à partir de l arbre syntaxique lorsque : a=vrai, b=faux, c=vrai VARI - Ed n 1 - grammaires 4

Exercice 4 : un petit langage de programmation Soit la grammaire définissant un petit langage de programmation : <programme> ::= <instruction>{<instruction>} <instruction> ::= <affectation> <conditionnelle> <conditionnelle> ::=? <condition> : <affectation> <condition> ::= <expression> (= #) <expression> <affectation> ::= <identificateur> = <expression> <expression> ::= <facteur> (+ -) <expression> <facteur> <facteur> ::= <terme> (* /) <facteur> <terme> <terme> ::= <identificateur> <nombre> (<expression>) <identificateur> ::= a z <nombre> ::= <chiffre><nombre> <chiffre> <chiffre> ::= 0 9 Les symboles terminaux sont en gras. Question Les programmes suivants sont-ils syntaxiquement corrects? Tracer l arbre syntaxique. Si l analyse n aboutit pas, proposer une forme syntaxiquement valide. Chaque ligne est considérée comme un programme : c=6 b=c+(?(c=a):b=c) b=?(c#a):b=a b=b*a?(b+c)#0:b=c y=+a/z VARI - Ed n 1 - grammaires 5