Compilation. Mirabelle Nebut 2012-2013. Bureau 332 - M3 mirabelle.nebut at lifl.fr



Documents pareils
DSL. Domain Specific Language. À l'aide des technologies Eclipse Modeling. Goulwen Le Fur Le 23 novembre 2012

Cours de Programmation 2

Cours 1 : La compilation

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

Introduction à la conception de systèmes d information

Formula Negator, Outil de négation de formule.

XML, PMML, SOAP. Rapport. EPITA SCIA Promo janvier Julien Lemoine Alexandre Thibault Nicolas Wiest-Million

Interpréteur d algèbre relationnelle

Présentation. Au programme. Fonctionnement. A l issue de ce module vous devriez...

TP1. Outils Java Eléments de correction

Cours 1 : Qu est-ce que la programmation?

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

Programme scientifique Majeure ARCHITECTURE DES SYSTEMES D INFORMATION. Mentions Ingénierie des Systèmes d Information Business Intelligence

Analyse de performance, monitoring

LES OUTILS D ALIMENTATION DU REFERENTIEL DE DB-MAIN

Développement d un interpréteur OCL pour une machine virtuelle UML.

Technologies Web. Ludovic Denoyer Sylvain Lamprier Mohamed Amine Baazizi Gabriella Contardo Narcisse Nya. Université Pierre et Marie Curie

Environnements et Outils de Développement Cours 1 Introduction

UNIVERSITE PARIS 1 PANTHEON SORBONNE

HMTL. Exemple de fichier HTML. Structure d un document HTML. Exemple de fichier HTML. Balises HTML. IFT1147 Programmation Serveur Web avec PHP

PROGRAMME DETAILLE. Parcours en première année en apprentissage. Travail personnel CC + ET réseaux

Problématiques de recherche. Figure Research Agenda for service-oriented computing

Théorie de la Programmation

Thème Informatique (INF) INF1 : Architectures logicielles et Web

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

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

Evolution et architecture des systèmes d'information, de l'internet. Impact sur les IDS. IDS2014, Nailloux 26-28/05/2014

Modules du DUT Informatique proposés pour des DCCE en 2014/2015

Programme et contenus Licence d'informatique de Lille, parcours MIAGE, en alternance ou en formation continue (13:40)

Service d inspection automatisée des logiciels

Traduction des Langages : Le Compilateur Micro Java

RESUME DESCRIPTIF DE LA CERTIFICATION (FICHE OPERATIONNELLE METIERS)

Projet 2. Gestion des services enseignants CENTRE D ENSEIGNEMENT ET DE RECHERCHE EN INFORMATIQUE. G r o u p e :

Évaluation et implémentation des langages

Master Sciences et Technologies Mention Informatique Spécialité E-Services en Alternance

ANALYSTE PROGRAMMEUR DIPLÔME D ÉTABLISSEMENT

Alignement avec les métiers par le test fonctionnel et d acceptation en projets agiles

UE 8 Systèmes d information de gestion Le programme

Remise à niveau d un programme JAVA du domaine public

Brique BDL Gestion de Projet Logiciel

Introduction à la modélisation

Mines Nantes 20/05/2014. Institut Mines-Telecom : a national network 12 Engineering Graduate schools & 1 Business school. 2 Institut Mines-Télécom

Parcours DIWEB : (Données, Interaction et Web)

Les technologies du Big Data

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

S LICENCE INFORMATIQUE Non Alt S Alt S S1 S2 S3 S4 SS5 S6 Parcours : S IL (Ingénierie Logicielle) SRI (Systèmes et Réseaux Informatiques)

Ingénierie des Modèles. Méta-modélisation

Environnements de développement (intégrés)

Formations 2015 JASPER, REDMINE, TABLEAU, TALEND, SPAGO BI SYNALTIC 24 RUE DE L EGLISE VINCENNES

Année Universitaire ère année de Master Droit Mention Droit Privé 1 er semestre. 1 er SEMESTRE 8 matières CM TD COEFF ECTS.

Quelques éléments de compilation en C et makefiles

SECTION 5 BANQUE DE PROJETS

Stage Ingénieur en développement logiciel/modélisation 3D

Préparation à l examen EFA en Macro

Les BRMS Business Rules Management System. Groupe GENITECH

Algorithmique I. Algorithmique I p.1/??

GANTTPROJECT. Julien TENDERO

Gestion collaborative de documents

4. SERVICES WEB REST 46

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

DSLs pour le Développement Agile de Transformations

Iyad Alshabani SysCom - CReSTIC Université de Reims 17/02/2011 1

Vulgarisation Java EE Java EE, c est quoi?

Bases Java - Eclipse / Netbeans

Comment récupérer un document OOo corrompu. Distribué par Le projet OpenOffice.org

TP3 Intégration de pratiques agiles. 1. User Stories (1) Scénario d intégration agile. En direct-live du château

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java

1/ Présentation de SQL Server :

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

MENTION INFORMATIQUE

Architecte Logiciel. Unité de formation 1 : Développer en s appuyant sur les modèles et les frameworks 7 semaines

Programmation Internet Cours 4

Java Licence Professionnelle CISII,

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

Point sur les solutions de développement d apps pour les périphériques mobiles

Plateforme de capture et d analyse de sites Web AspirWeb

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

Cours de Master Recherche

Environnement logiciel basé sur les modèles pour la conception collaborative de produit

Intelligence Artificielle et Robotique

Initiation. àl algorithmique et à la programmation. en C

IFT3902 : (Gestion de projet pour le) développement, (et la) maintenance des logiciels

Master Technologies numériques appliquées à l'histoire Deuxième année

LES OUTILS DE GESTION DE PROJET

L Orchestration de Services Web avec Orchestra. Goulven Le Jeune Orchestra Project Manager

VOLÉE Master of Advanced Studies RAPID APPLICATION DEVELOPMENT.

Java c est quoi? Java. Java. Java : Principe de fonctionnement 31/01/ Vue générale 2 - Mon premier programme 3 - Types de Programme Java

Agile 360 Product Owner Scrum Master

SQL Parser XML Xquery : Approche de détection des injections SQL

Analyse et Conception objet du logiciel Analyse et conception objet du logiciel : Méthode de conception objet et notation UML.

Bureautique Initiation Excel-Powerpoint

Liste des Technologies

Mise en œuvre des serveurs d application

Le Product Backlog, qu est ce c est?

Expert technique J2EE

S7 Le top 10 des raisons d utiliser PHP pour moderniser votre existant IBM i

Tutoriel QSOS. Version /02/2013

Informatique & Systèmes de Communication. Stages de 12 à 16 semaines aux Etats-Unis

CIGREF Pacbase : un nouvel an 2000 Solutions d évolution des patrimoines Pacbase

Transcription:

Bureau 332 - M3 mirabelle.nebut at lifl.fr 2012-2013

Organisation du cours Organisation : C / TD / TP sur 12 semaines Évaluation : contrôles courts en amphi au cours du semestre ; TP rendus ; contrôle de 3h en fin de semestre. Docs et infos là (mais ne dispensent pas d assister au cours) : http://www.fil.univ-lille1.fr/portail/ 2/29

Organisation première semaine 2 cours : aujourd hui = créneau additionnel jeudi, 8h30 amphi M5 = créneau habituel 1 TD = créneaux particuliers à cette semaine 0 TP 3/29

Les intervenants Groupe 1 : Yves Roos Groupe 2 : Groupe 3 : Groupe 4 : Thomas Pietrzak 4/29

Le pourquoi du cours de COMPIL(ation) 5/29

Quels compilateurs connaissez-vous? 6/29

Compilateurs utilisés quotidiennement en L3 Foo.java javac Foo.class foo.c gcc foo.o Dans ce cas un logiciel qui produit un exécutable à partir d un programme : entrée : programme dans le langage source ; sortie : programme (équivalent) dans le langage cible ; ou message(s) d erreur si entrée non correcte. programme source compilateur programme cible messages d erreur 7/29

D autres exemples? 8/29

Compilateurs utilisés couramment GIF convertisseur JPEG doc XML DTD analyseur doc HTML Dans ce cas un logiciel qui tranforme une entrée textuelle en sortie équivalente : source et cible pas nécessairement des programmes ; cible pas nécessairement exécutable ; conservation de l information ; correction de l entrée. 9/29

Pensez-vous que vous serez amenés à écrire / développer de tels compilateurs? 10/29

P être ben que non... Parmi vous, peu seront amenés à travailler sur un compilateur pour Java! Vous ne faites que l utiliser. (mais alors, pourquoi ce cours?) 11/29

Quel type de compilateur écrirez-vous au quotidien? Une moulinette qui prend en entrée un fichier texte correct (de données), le reconnaît et le traite... fichier de configuration d une application reverse engineering de copybook COBOL vers votre langage préféré extraction automatique de doc (graphe des appels) d une application et vos moulinettes perso... 12/29

Exemple en TP : génération de planning format HTML master TIIR date jeudi 8 septembre 2011 salle A12 8h30 9h15 ; "Dupont Alex" ; "Crédit Coop" ; "J2EE, Struts" 9h15 10h ; "Durand Sophie" ; "La Nef" ; "modélisation, génération"... master IAGL date... mercredi 7 septembre 2011 moulinette TIIR_jeudi_8_septembre_2011_A12.html IAGL_mercredi_7_septembre_2011_A5.html...... 13/29

Exemple en TP : un DSL DSL = Domain-Specific Language [Fowler2011] a DSL is a computer programming language of limited expressiveness focused on a particular domain. Autres exemples de DSL de la vraie vie : langage Dot + graphviz : visualisation de graphes ; Mockito : description de mocks pour Java ; CSS ; langage de Makefile pour make 14/29

Le livre de Fowler sur les DSL Utilise le mot compilateur au sens pas un interpréteur. Mais les techniques associées aux DSL sont celles de la compilation. 600 pages sur des little languages which can help clarify small, but important, areas of a software project, par un grand monsieur de l OO et des méthodes agiles. 15/29

En bref, quels logiciels étudie-t-on en COMPIL? Qu on l appelle DSL ou compilateur : c est un logiciel qui prend en entrée une donnée textuelle source (programme, donnée xml, fichier de configuration, etc) ; la reconnaît (l analyse) pour vérifier sa correction ; émet éventuellement un message d erreur ; calcule une donnée de sortie (programme, donnée, etc). 16/29

Le pourquoi du cours de COMPIL(ation) 17/29

Génie logiciel Théorie du langage 18/29

À quoi sert le génie logiciel (en compilation) patterns de conception objet standard structures de données structuration classique d un compilateur en modules 19/29

Structure globale En deux parties : analyse/reconnaissance ; synthèse/transformation. partie rep texte avant source sémantique (analyse) partie arrière (synthèse) texte cible Structure classique d une application de traitement de données textuelles. 20/29

À quoi sert la théorie du langage (en compilation) Essentielle pour la partie reconnaissance : partie avant (analyse) texte source analyseur lexical analyseur syntaxique analyse sémantique rep sémantique 21/29

Analyse lexicale seul module au contact avec le texte source ; lit le texte source sous la forme d une suite de caractères ; décompose cette suite en une suite d unités lexicales appelées symboles ou tokens ; Ex : program pgm; int x,y; PROGRAM IDENT( pgm ) FININSTR DECL IDENT( x ) SEP IDENT( y ) FININSTR 22/29

Analyse syntaxique connaît la syntaxe des textes corrects : tente de reconnaître dans le flot des symboles la structure d un texte correct cette structure peut se décrire par un arbre syntaxique Ex : programme PROGRAM IDENT( pgm ) FININSTR DECL IDENT( x ) SEP IDENT( y ) FININSTR listedeclarations declaration type listeident listeinstructions DECLINT IDENT SEP listeident IDENT 23/29

Analyse sémantique Produit une représentation sémantique interne du source. :Programme "pgm" :ListeInstructions :ListeDeclarations...... Au sens large, effectue sur cette représentation : des vérifications (ex : de type, des déclarations) ; des actions (ex : production de code). 24/29

Descriptions et formalismes exécutables Théorie du langage. module description formalisme exécutable analyse lexicale expressions régulières automates à nombre fini d états analyse syntaxique grammaires algébriques automates à pile analyse sémantique grammaires attribuées automates à pile avec actions + arbre syntaxique = structure sous-jacente à l analyse syntaxique 25/29

Le pourquoi du cours de COMPIL(ation) 26/29

En TP Plusieurs cas d études, orientés DSL externes. Illustration des différentes techniques vues en cours Premier TP : génération de planning HTML à la main TPs suivants : utilisation de générateurs automatiques d analyseurs lexical et syntaxique comprendre leur expressivité : quand peut-on les utiliser comprendre les messages d erreur comprendre les contraintes d utilisation NB : impératif d avoir compris la théorie du langage vue en cours 27/29

En cours et TD Front-end d un compilateur seulement. Notions de théorie du langage principalement. Les notions de GL seront vues dans d autres UEs. 28/29

complète sur le portail : Le dragon : Aho, Sethi, Ullman, Compilateurs : principes, techniques et outils ; un ouvrage très pragmatique : Grune, Bal, Jacobs, Langendoen, Compilateurs ; un ouvrage plus formel, très rigoureux : Wilhelm, Maurer, Les compilateurs : théorie, construction, génération ; un ouvrage très pragmatique, orienté Java : Appel, Modern Compiler Implementation in Java. aucune théorie du langage : Fowler, Domain-Specific Languages 29/29