Théorie des Langages

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

Download "Théorie des Langages"

Transcription

1 Théorie des Langages AntLR - Générateur d analyseurs Claude Moulin Université de Technologie de Compiègne NF11

2 Sommaire 1 Introduction 2 Evaluation d une expression 3 Expressions arithmétiques

3 AntLR ANTLR : ANother Tool for Language Recognition URL : Auteur : Terence Parr (Université de San Francisco) Il fournit un parser qui interagit avec le lexer, fournit un rapport d erreur assez explicite et construit des arbres syntaxiques.

4 Objectif AntLR est un outil de génération automatique d analyseur permettant de reconnaître les phrases d un programme écrit dans un langage donné. L analyseur est généré à partir d un fichier grammaire contenant les règles définissant le langage. Code généré : classes en Java, C# ou C++, Python, etc. AntLR définit un Méta Langage utilisé pour écrire le fichier grammaire.

5 Mise en œuvre d AntLR Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

6 Mise en œuvre d AntLR Génération du code (Windows) - On crée un fichier batch qui appelle le générateur d AntLR et permet de générer le code à partir d un fichier grammaire g4 off set CLASSPATH=lib/antlr-4.6-complete.jar; java org.antlr.v4.tool -visitor -o src/logoparsing grammars/logo.g4 pause Syntaxe : java org.antlr.v4.tool -visitor -o <output-folder> <grammaire.g4> ;

7 Mise en œuvre d AntLR Synchronisation avec Eclipse Synchroniser le code généré avec l environnement de développement Eclipse. Créer un projet Eclipse et un package pour les classes créées par le fichier batch ; Mettre le fichier batch à la racine du projet Créer la grammaire dans un répertoire (grammars/logo.g4) ; Utiliser l option -o pour indiquer le répertoire où les fichiers sont générés. Utiliser l option -visitor pour générer aussi les classes pour le design pattern Visitor.

8 Analyses Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

9 Analyses Analyses Analyse lexicale Flux de caractères Flux de tokens Analyse syntaxique Flux de tokens Interprétation Flux de tokens AST Traitement à partir de l arbre AST AST Interprétation

10 Analyses Analyse Lexicale L analyseur lexical (lexer) est l outil qui permet de découper un flux de caractères en un flux de mots du langage (tokens). Flux de caractères : a i r e := b a s e x h a u t e u r Lexer t 1 (aire) t 2 ( :=) t 3 (base) t 4 ( ) t 5 (hauteur)

11 Analyses Analyse Syntaxique L analyseur syntaxique (parser) vérifie que l ensemble des mots issus de l analyse lexicale (les tokens) forme une phrase syntaxiquement correcte. Il n y a pas de garantie concernant la sémantique de cette phrase. Flux de caractères : a i r e := b a s e x h a u t e u r Lexer t 1 (aire) t 2 ( :=) t 3 (base) t 4( ) t 5 (hauteur) Parser Arbre syntaxique

12 Analyses Génération

13 Analyses Exemple Grammaire permettant d écrire des expressions arithmétiques du type : 10-3 * 5 (20-10) / 4 Symboles opératoires : +, -, *, /, ^ ; Les opérandes sont des nombres entiers ; Il est possible d utiliser des parenthèses ; Les espaces et tabulations sont ignorés mais servent de séparateurs.

14 Analyses Fichier grammaire : Expr.g4 grammar { package expression; INT : ; WS : [ \t\r\n]+ -> skip ; expr: sumexpr ; sumexpr : multexpr (( + - ) multexpr)* ; multexpr: powexpr (( * / ) powexpr)* ; powexpr : atom ( ^ atom)* atom: INT ( expr ) ;

15 Principe de fonctionnement Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

16 Principe de fonctionnement Règles Les catégories lexicale (lexer) sont en majuscule. Les catégories syntaxiques (variables) du parser sont en minuscule. expr est considéré comme l axiome de la grammaire. AntLr déclare automatiquement les tokens.

17 Principe de fonctionnement Classes générées (exemple Java) 1 Lexer : ExprLexer.java 2 Parser : ExprParser.java 3 Listes de tokens : Expr.tokens ; ExprLexer.tokens 4 Listeners : ExprListener.java (interface) ExprBaseListener.java (classe implémentant à vide l interface) 5 Visitors : ExprVisitor.java (interface) ExprBaseVisitor.java (classe implémentant à vide l interface)

18 Principe de fonctionnement Parser public class ExprParser extends Parser { public ExprParser(TokenStream input) {... public final ExprContext expr() throws RecognitionException {... public static class ExprContext extends ParserRuleContext {... Pour chaque règle syntaxique une méthode reprenant le nom de la règle et une classe contexte sont créées pour l analyse d une phrase.

19 Principe de fonctionnement Utilisation du parser Un parser ANTLR construit un arbre syntaxique à partir du programme donné en entrée. Il est nécessaire de parcourir cet arbre pour effectuer des actions. Traitements : Simple : un seul parcours de l arbre en profondeur d abord est nécessaire pour le traitement. On utilise un listener d événements. Evolué : le parcours de l arbre n est pas nécessairement complet ; une sous-arborescence peut être parcourue plusieurs fois. On utilise un visiteur d arbre.

20 Principe de fonctionnement Visitor ANTLR genère une interface visitor et une classe de base implémentant à vide l interface. Un visitor est un design pattern dont le but est d exécuter une opération sur les éléments d une structure (arbre) sans changer le type des éléments de la structure sur laquelle il opère. public class ExprBaseVisitor<T> extends ParseTreeVisitor<T> implements ExprVisitor<T> public T visitexpr(exprparser.exprcontext ctx) { return visitchildren(ctx);...

21 Principe de fonctionnement Type du Visiteur ANTLR utilise un type paramètre pour la valeur de retour des méthodes du visiteur. Lors de la création de la classe visiteur il faut dériver la classe de base fournie par ANTLR avec le choix du type. Intéressant dans les cas simples lorsque toutes les méthodes doivent retourner le même type de valeurs. to implement. public class ExprEvalVisitor extends ExprBaseVisitor<Double> public Double visitexpr(exprcontext ctx) { return visit(ctx.sumexpr());...

22 Principe de fonctionnement Méthode statique minimale public static String program = "programs/expr.txt"; public static void run_mini() { try { // lexer InputStream is = new FileInputStream(program); ANTLRInputStream stream = new ANTLRInputStream(is); Expr1Lexer lexer = new Expr1Lexer(stream); // parser CommonTokenStream tokens = new CommonTokenStream(lexer); ExprParser parser = new ExprParser(tokens); ParseTree tree = parser.expr(); System.out.println(tree.toStringTree(parser)); catch(exception ex) { ex.printstacktrace();

23 Principe de fonctionnement Résultat pour : 5*(10-2) (expr (sumexpr (multexpr (powexpr (atom 5)) * (powexpr (atom ( (expr (sumexpr (multexpr (powexpr (atom 10))) - (multexpr (powexpr (atom 2))))) ))))))

24 Grammaire v4 Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

25 Grammaire v4 Métalangage du lexer Opérateurs concaténation alternative : au moins 1 : + 0 ou plus (Kleene) : * 0 ou 1 :? négation : caractère quelconque :. Parenthèses pour forcer l appel des opérateurs.

26 Grammaire v4 Facilités Fragment pour simplifier l écriture de certaines règles : fragment LET : A.. Z a.. z ; fragment DIGIT : ; ID : LET (LET DIGIT)+ ; SPACE : ; Pour ignorer les espaces, tabulations, retours à la ligne dans l écriture d un programme : WS : [ \t\r\n]+ -> skip ;

27 Grammaire v4 Nommer chaque alternative expr : sumexpr ; sumexpr : multexpr (( + - ) multexpr)* ; multexpr : powexpr (( * / ) powexpr)* ; powexpr : atom ( ^ atom)* ; atom : INT #int ( expr ) #parent ; Il est nécessaire de donner un nom à chaque cas d une alternative pour générer une méthode adaptée du visiteur

28 Grammaire v4 Accès aux nœuds de l arbre Un parser ANTLR construit un arbre syntaxique à partir du programme donné en entrée. Les méthodes des listener et visitor créés par ANTLR ont un paramètre (ctx) dont le type est une classe décrivant le nœud de l arbre créé par le parser. Ce paramètre permet d accéder aux nœuds fils. Depuis visitexpr on a accès à ctx.sumexpr(). Plusieurs fils de même nom sont accessibles dans une liste : depuis visitmultexpr on a accès à ctx.powexpr(). Accès aux tokens par leur nom : depuis visitint on a accès à INT().

29 Grammaire v4 Forme générale d une grammaire Déclaration de la grammaire grammar <GrammarName> ; déclaration de { package expression2; Règles lexicales (Majuscule) Règles syntaxiques (Minuscule)

30 Sommaire 1 Introduction 2 Evaluation d une expression 3 Expressions arithmétiques

31 Principe du visitor Définir la méthode de visite de chaque nœud de l arbre (règle de la grammaire). Elle peut simplement appeler la méthode de visite des fils du nœud Le paramètre contexte de chaque méthode donne accès aux éléments fils du nœud courant. Appeler la méthode de visite sur les nœuds fils pertinents. Type : le type de chaque méthode sera Double (division). public class ExprEvalVisitor extends ExprBaseVisitor<Double> {...

32 Utilisation du paramètre de retour Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

33 Utilisation du paramètre de retour Evaluation d un nombre Elle correspond à l alternative int. public Double visitint(intcontext ctx) { String inttext = ctx.int().gettext(); return Double.valueOf(intText);

34 Utilisation du paramètre de retour Evaluation d une expression Il suffit de visiter le nœud fils. public Double visitexpr(exprcontext ctx) { return visit(ctx.sumexpr());

35 Utilisation du paramètre de retour Evaluation d une parenthèse Il suffit de visiter le nœud expression fils. public Double visitparent(parentcontext ctx) { return visit(ctx.expr());

36 Utilisation du paramètre de retour Evaluation d une powexpr On doit visiter les nœuds atom fils. public Double visitpowexpr(powexprcontext ctx) { Double left = visit(ctx.atom(0)); Double right = visit(ctx.atom(l));... Comme un nœud atom est soit un nœud int soit un nœud parent, visit(ctx.atom(0)) appelle visitint ou visitparent suivant le cas.

37 Utilisation du paramètre de retour Evaluation d une expression somme Une somme peut avoir plusieurs opérandes. On dispose de la liste des nœuds fils opérandes ctx.multexpr() et de tous les nœuds fils. Les opérateur sont les fils de rang impair. public Double visitsumexpr(sumexprcontext ctx) { int l = 0; int nb = ctx.multexpr().size(); Double result = visit(ctx.multexpr(l)); l++; int oprow = 1; while (l < nb) { Double right = visit(ctx.multexpr(l)); result = ctx.getchild(oprow).gettext().equals("+")? result + right : result - right; l++; oprow +=2 ; return result;

38 Utilisation du paramètre de retour Evaluation d une expression produit

39 Utilisation du paramètre de retour Evaluation d une expression produit Méthode similaire public Double visitmultexpr(multexprcontext ctx) { int l = 0; int nb = ctx.powexpr().size(); Double left = visit(ctx.powexpr(l)); Double result = left; l++; int oprow = 1; while (l < nb) { Double right = visit(ctx.powexpr(l)); result = ctx.getchild(oprow).gettext().equals("*")? result * right : result / right; l++; oprow +=2 ; return result;

40 Utilisation du paramètre de retour Programme public static void run_default_visitor() { try { InputStream is = new FileInputStream("prg/exp.txt"); ANTLRInputStream stream = new ANTLRInputStream(is); Expr1Lexer lexer = new Expr1Lexer(stream); CommonTokenStream tokens = new CommonTokenStream(lexer); Expr1Parser parser = new Expr1Parser(tokens); ParseTree tree = parser.expr(); Expr1EvalVisitor visitor = new Expr1EvalVisitor(); Double result = visitor.visit(tree); System.out.println("Result = " + result); catch(exception ex) { ex.printstacktrace();

41 Utilisation du paramètre de retour Résultat Expression : 5 * 3 / 2 * (15-2) Résultat : 97.5 Avantage : le visiteur retourne le résultat Désavantage : toutes les méthodes doivent retourner le même type de valeurs.

42 Sommaire 1 Introduction 2 Evaluation d une expression 3 Expressions arithmétiques

43 Conditions Dans les langages de programmation, la grammaire doit permettre d écrire et d évaluer correctement des expressions aritmétiques : fixer la priorité des opérateurs assurer l associativité à gauche utiliser des parenthèses pour forcer certaines associations doit être évalué à * 2 doit être évalué à / 30 * 5 doit être évalué à 50

44 Grammaire expr : sumexpr ; sumexpr : multexpr (( + - ) multexpr)* ; multexpr : powexpr (( * / ) powexpr)* ; powexpr : atom ( ^ atom)* ; atom : INT #int ( expr ) #parent ;

45 Analyse descendante Dans le cas de grammaire de type LL Les règles des opérateurs les moins prioritaires doivent être appelées avant lors des parsing Les opérateurs de même force doivent se retrouver dans les mêmes règles.

46 Exemple : / 30 * 5

47 Utilisation d une Map Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

48 Utilisation d une Map Méthode ANTLR fournit une classe ParseTreeProperty pour une map d objets indexés par les nœuds de l arbre. Chaque méthode stocke dans la map la valeur qu elle calcule. Chaque méthode va chercher dans la map les valeurs dont elle a besoin. Chaque méthode retourne un entier qui indique si le calcul s est bien passé.

49 Utilisation d une Map Déclaration de la Map // Map ParseTreeProperty<Double> attributes = new ParseTreeProperty<Double>(); // Accesseurs void setvalue(parsetree node, Double value) { attributes.put(node, value); Double getvalue(parsetree node) { return attributes.get(node); public Double getresult() { return getvalue(tree);

50 Utilisation d une Map Evaluation d un nombre Elle correspond à l alternative int. atom : int parent INT #int / \ ( expr ) #parent INT ( expr ) ; public Integer visitint(intcontext ctx) { String inttext = ctx.int().gettext(); setvalue(ctx, Double.valueOf(intText)); return 0;

51 Utilisation d une Map Evaluation d une expression expr : sumexpr Il suffit de visiter le nœud fils. public Integer visitexpr(exprcontext ctx) { visit(ctx.sumexpr()); setvalue(ctx,getvalue(ctx.sumexpr())); return 0;

52 Utilisation d une Map Evaluation d une parenthèse Il suffit de visiter le nœud expression fils. public Integer visitparent(parentcontext ctx) { visit(ctx.expr()); setvalue(ctx,getvalue(ctx.expr())); return 0;

53 public Integer visitsumexpr(sumexprcontext ctx) { int l = 0; int nb = ctx.multexpr().size(); visit(ctx.multexpr(l)); Double result = getvalue(ctx.multexpr(l)); l++; int oprow = 1; while (l < nb) { visit(ctx.multexpr(l)); Double right = getvalue(ctx.multexpr(l)); result = ctx.getchild(oprow).gettext().equals("+")? result + right : result - right; l++; oprow +=2 ; setvalue(ctx, result); return 0; Utilisation d une Map Evaluation d une expression somme Liste des nœuds fils opérandes : ctx.multexpr().

54 Utilisation d une Map Evaluation d une expression produit public Integer visitmultexpr(multexprcontext ctx) { int l = 0; int nb = ctx.powexpr().size(); visit(ctx.powexpr(l)); Double result = getvalue(ctx.powexpr(l)); l++; int oprow = 1; while (l < nb) { visit(ctx.powexpr(l)); Double right = getvalue(ctx.powexpr(l)); result = ctx.getchild(oprow).gettext().equals("*")? result * right : result / right; l++; oprow +=2 ; setvalue(ctx, result); return 0;

55 Utilisation d une Map Programme public static void run_map_visitor() { try { InputStream is = new FileInputStream("prg/expr2.txt"); ANTLRInputStream stream = new ANTLRInputStream(is); Expr2Lexer lexer = new Expr2Lexer(stream); CommonTokenStream tokens = new CommonTokenStream(lexer); Expr2Parser parser = new Expr2Parser(tokens); ParseTree tree = parser.expr(); Expr2EvalMapVisitor visitor = new Expr2EvalMapVisitor(); visitor.settree(tree); visitor.visit(tree); System.out.println("Result = " + visitor.getresult()); catch(exception ex) { ex.printstacktrace();

56 Utilisation d une Map Résultat Expression : 5 * 3 / 2 * (15-2) Résultat : 97.5 Contrainte : chaque méthode doit stocker la valeur dans une structure ; le visitor doit mémoriser le nœud racine de l arbre. Avantage : les méthodes peuvent indiquer une information selon le type de retour choisi.

57 Potentiel d ANTLR Sommaire 1 Introduction Mise en œuvre d AntLR Analyses Principe de fonctionnement Grammaire v4 2 Evaluation d une expression Utilisation du paramètre de retour 3 Expressions arithmétiques Utilisation d une Map Potentiel d ANTLR

58 Potentiel d ANTLR Avancées de ANTLR v4 ANTLR v4 simplifie l écriture de règles de grammaire grâce à l algorithme ALL(*) Il élimine les conflits principaux des grammaires LL et donc des parser descendants : Non factorisation à gauche a : b INT b ( a ) Récursivité directe à gauche expr : expr * expr

59 Potentiel d ANTLR Grammaire v4 grammar { package expression3; INT : ; WS : ( \r \t \n )+ {skip(); ; prg: expr ; expr: expr ^ expr #exp expr ( * / ) expr #mult expr ( + - ) expr #sum INT #int ( expr ) #parent ;

60 Potentiel d ANTLR Interprétation expr: expr ( * / ) expr #mult expr ( + - ) expr #sum... ; La récursivité directe ne pose pas de problème. Le premier cas est considéré prioritaire ; il faut y mettre l opérateur considéré le plus important (*, /). L associativité est à gauche = 8 ; * 4 = 60

61 Potentiel d ANTLR Evaluation d un nombre Elle correspond à l alternative int. public Integer visitint(intcontext ctx) { String inttext = ctx.int().gettext(); Double r = Double.valueOf(intText);... return 0;

62 Potentiel d ANTLR Evaluation d une expression Il faut une règle qui appelle le calcul d expression lorsqu il n y a qu une alternative. public Integer visitprg(prgcontext ctx) { visit(ctx.expr());... return 0;

63 Potentiel d ANTLR Evaluation d une parenthèse Elle correspond à l alternative parent. public Integer visitparent(parentcontext ctx) { visit(ctx.expr());... return 0;

64 Potentiel d ANTLR Evaluation d une expression somme 2 nœuds fils opérandes : ctx.expr(). public Integer visitsum(sumcontext ctx) { visit(ctx.expr(0)); visit(ctx.expr(1)); Double left =... Double right =... Double result = ctx.getchild(1).gettext().equals("+")? left + right : left - right;... return 0;

65 Potentiel d ANTLR Evaluation d une expression produit public Integer visitmult(sumcontext ctx) { visit(ctx.expr(0)); visit(ctx.expr(1)); Double left =... Double right =... Double result = ctx.getchild(1).gettext().equals("*")? left * right : left / right;... return 0;

66 Potentiel d ANTLR Programme public static void run_antlr_visitor() { try { InputStream is = new FileInputStream(prog3); ANTLRInputStream stream = new ANTLRInputStream(is); ExprLexer lexer = new ExprLexer(stream); CommonTokenStream tokens = new CommonTokenStream(lexer); ExprParser parser = new ExprParser(tokens); ParseTree tree = parser.prg(); ExprEvalRecursVisitor visitor = new ExprEvalRecursVisitor(); visitor.visit(tree); System.out.println("Result = " + visitor.getresult()); catch(exception ex) { ex.printstacktrace();

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

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf

Introduction à Java. Matthieu Herrb CNRS-LAAS. Mars 2014. http://homepages.laas.fr/matthieu/cours/java/java.pdf Introduction à Java Matthieu Herrb CNRS-LAAS http://homepages.laas.fr/matthieu/cours/java/java.pdf Mars 2014 Plan 1 Concepts 2 Éléments du langage 3 Classes et objets 4 Packages 2/28 Histoire et motivations

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

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

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

Structure d un programme et Compilation Notions de classe et d objet Syntaxe Cours1 Structure d un programme et Compilation Notions de classe et d objet Syntaxe POO 1 Programmation Orientée Objet Un ensemble d objet qui communiquent Pourquoi POO Conception abstraction sur les types

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

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

É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

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

Cours 1 : Introduction. Langages objets. but du module. contrôle des connaissances. Pourquoi Java? présentation du module. Présentation de Java Langages objets Introduction M2 Pro CCI, Informatique Emmanuel Waller, LRI, Orsay présentation du module logistique 12 blocs de 4h + 1 bloc 2h = 50h 1h15 cours, 45mn exercices table, 2h TD machine page

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

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture

API04 Contribution. Apache Hadoop: Présentation et application dans le domaine des Data Warehouses. Introduction. Architecture API04 Contribution Apache Hadoop: Présentation et application dans le domaine des Data Warehouses Introduction Cette publication a pour but de présenter le framework Java libre Apache Hadoop, permettant

Plus en détail

INF 321 : mémento de la syntaxe de Java

INF 321 : mémento de la syntaxe de Java INF 321 : mémento de la syntaxe de Java Table des matières 1 La structure générale d un programme 3 2 Les composants élémentaires de Java 3 2.1 Les identificateurs.................................. 3 2.2

Plus en détail

Approche Contract First

Approche Contract First Exemple HelpDesk Approche Contract First Développement d un premier web service en utilisant l approche contract first (ou WSDL First) Écriture du wsdl avant d écrire le code java Autre possibilité implementation

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

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

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

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

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) TP Réseau Université Paul Sabatier Master Informatique 1 ère Année Année 2006/2007 Plan Objectifs et Inconvénients de RMI Fonctionnement Définitions Architecture et principe

Plus en détail

INTRODUCTION A JAVA. Fichier en langage machine Exécutable

INTRODUCTION A JAVA. Fichier en langage machine Exécutable INTRODUCTION A JAVA JAVA est un langage orienté-objet pur. Il ressemble beaucoup à C++ au niveau de la syntaxe. En revanche, ces deux langages sont très différents dans leur structure (organisation du

Plus en détail

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13

WEBSERVICES. Michael Fortier. Master Informatique 2ème année. fortier@lipn.univ-paris13.fr A308, Université de Paris 13 WEBSERVICES Michael Fortier Master Informatique 2ème année fortier@lipn.univ-paris13.fr A308, Université de Paris 13 https ://lipn.univ-paris13.fr/ fortier/enseignement/webservices/ Sommaire 1 Rappels

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

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

Présentation du langage et premières fonctions

Présentation du langage et premières fonctions 1 Présentation de l interface logicielle Si les langages de haut niveau sont nombreux, nous allons travaillé cette année avec le langage Python, un langage de programmation très en vue sur internet en

Plus en détail

Machines virtuelles fonctionnelles (suite) Compilation ML Java

Machines virtuelles fonctionnelles (suite) Compilation ML Java Machines virtuelles fonctionnelles (suite) Compilation ML Java Cours de Compilation Avancée (MI190) Benjamin Canou Université Pierre et Maire Curie Année 2011/2012 Semaine 3 Machines virtuelles fonctionnelles

Plus en détail

Auto-évaluation Programmation en Java

Auto-évaluation Programmation en Java Auto-évaluation Programmation en Java Document: f0883test.fm 22/01/2013 ABIS Training & Consulting P.O. Box 220 B-3000 Leuven Belgium TRAINING & CONSULTING INTRODUCTION AUTO-ÉVALUATION PROGRAMMATION EN

Plus en détail

ADAPT: un modèle de transcodage des nombres. Une application des systèmes de production au développement

ADAPT: un modèle de transcodage des nombres. Une application des systèmes de production au développement ADAPT: un modèle de transcodage des nombres Une application des systèmes de production au développement Référence Barrouillet, P., Camos, V., Perruchet, P., & Seron, X. (2004). A Developmental Asemantic

Plus en détail

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2

Anne Tasso. Java. Le livre de. premier langage. 10 e édition. Avec 109 exercices corrigés. Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Anne Tasso Java Le livre de premier langage 10 e édition Avec 109 exercices corrigés Groupe Eyrolles, 2000-2015, ISBN : 978-2-212-14154-2 Table des matières Avant-propos Organisation de l ouvrage..............................

Plus en détail

Introduction à MapReduce/Hadoop et Spark

Introduction à MapReduce/Hadoop et Spark 1 / 36 Introduction à MapReduce/Hadoop et Spark Certificat Big Data Ludovic Denoyer et Sylvain Lamprier UPMC Plan 2 / 36 Contexte 3 / 36 Contexte 4 / 36 Data driven science: le 4e paradigme (Jim Gray -

Plus en détail

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour

LMI 2. Programmation Orientée Objet POO - Cours 9. Said Jabbour. jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour LMI 2 Programmation Orientée Objet POO - Cours 9 Said Jabbour jabbour@cril.univ-artois.fr www.cril.univ-artois.fr/~jabbour CRIL UMR CNRS 8188 Faculté des Sciences - Univ. Artois Février 2011 Les collections

Plus en détail

Flux de données Lecture/Ecriture Fichiers

Flux de données Lecture/Ecriture Fichiers Flux de données Lecture/Ecriture Fichiers 1 Un flux de données est un objet qui représente une suite d octets d un programme pour une certaine destination ou issus d une source pour un programme flux d

Plus en détail

Bernard HAMM, Évelyne LAVOISIER

Bernard HAMM, Évelyne LAVOISIER 92 MAÎTRISE DE PROGICIELS DE GESTION DE BASES DE DONNÉES ET DE TRAITEMENT DE TEXTE Compte rendu d'un stage à l'usage des professeurs de sciences sociales. Ce stage a été programmé A la demande et avec

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

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère

Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère L'héritage et le polymorphisme en Java Pour signifier qu'une classe fille hérite d'une classe mère, on utilise le mot clé extends class fille extends mère En java, toutes les classes sont dérivée de la

Plus en détail

OpenPaaS Le réseau social d'entreprise

OpenPaaS Le réseau social d'entreprise OpenPaaS Le réseau social d'entreprise Spécification des API datastore SP L2.3.1 Diffusion : Institut MinesTélécom, Télécom SudParis 1 / 12 1OpenPaaS DataBase API : ODBAPI...3 1.1Comparaison des concepts...3

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

PROGRAMMATION PAR OBJETS

PROGRAMMATION PAR OBJETS PROGRAMMATION PAR OBJETS Java Environnement et constructions spécifiques Walter Rudametkin Maître de Conférences Bureau F011 Walter.Rudametkin@polytech-lille.fr B. Carré Polytech Lille 2 Java (Sun 1995)

Plus en détail

L informatique en BCPST

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é

Plus en détail

PROJET ALGORITHMIQUE ET PROGRAMMATION II

PROJET ALGORITHMIQUE ET PROGRAMMATION II PROJET 1 ALGORITHMIQUE ET PROGRAMMATION II CONTENU DU RAPPORT A RENDRE : o Fiche signalétique du binôme o Listing des différents fichiers sources o CD sources o Il sera tenu compte de la présentation du

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

I. MySQL : Serveur et SGBD

I. MySQL : Serveur et SGBD Le Système de Gestion de Base de Données MySQL I. MySQL : Serveur et SGBD Menu I. MySQL : Serveur et SGBG II. Création d'une base de données avec MySQL MySQL est un système de gestion et conception de

Plus en détail

Projet de programmation (IK3) : TP n 1 Correction

Projet de programmation (IK3) : TP n 1 Correction Projet de programmation (IK3) : TP n 1 Correction Semaine du 20 septembre 2010 1 Entrées/sorties, types de bases et structures de contrôle Tests et types de bases Tests et types de bases (entiers) public

Plus en détail

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

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

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application Université de Provence Licence Math-Info Première Année V. Phan Luong Algorithmique et Programmation en Python Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application 1 Ordinateur Un

Plus en détail

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

Langage et Concepts de ProgrammationOrientée-Objet 1 / 40 Déroulement du cours Introduction Concepts Java Remarques Langage et Concepts de Programmation Orientée-Objet Gauthier Picard École Nationale Supérieure des Mines de Saint-Étienne gauthier.picard@emse.fr

Plus en détail

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code

Généralités. javadoc. Format des commentaires. Format des commentaires. Caractères spéciaux. Insérer du code Généralités javadoc Université de Nice - Sophia Antipolis Richard Grin Version 1.4.1 8/2/11 javadoc produit de la documentation en partant de commentaires particuliers insérés dans le code source des classes

Plus en détail

La base de données XML exist. A. Belaïd

La base de données XML exist. A. Belaïd La base de données XML exist Introduction Qu est-ce-que exist? C est une base de donnée native, entièrement écrite en Java XML n est pas une base de données en soi Bien qu il possède quelques caractéristiques

Plus en détail

RMI le langage Java XII-1 JMF

RMI le langage Java XII-1 JMF Remote Method Invocation (RMI) XII-1 Introduction RMI est un ensemble de classes permettant de manipuler des objets sur des machines distantes (objets distants) de manière similaire aux objets sur la machine

Plus en détail

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ;

Exceptions. 1 Entrées/sorties. Objectif. Manipuler les exceptions ; CNAM NFP121 TP 10 19/11/2013 (Séance 5) Objectif Manipuler les exceptions ; 1 Entrées/sorties Exercice 1 : Lire un entier à partir du clavier Ajouter une méthode readint(string message) dans la classe

Plus en détail

IV- Comment fonctionne un ordinateur?

IV- Comment fonctionne un ordinateur? 1 IV- Comment fonctionne un ordinateur? L ordinateur est une alliance du hardware (le matériel) et du software (les logiciels). Jusqu à présent, nous avons surtout vu l aspect «matériel», avec les interactions

Plus en détail

Programmation Objet Java Correction

Programmation Objet Java Correction INSA - 4 AE 2007 2008 Durée : 1H00 Contrôle Programmation Objet Java Correction Consignes Tous les documents sont autorisés, mais ils seront peu utiles. Indiquez vos nom et prénom sur chaque feuille. Le

Plus en détail

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7

Plan du cours. Historique du langage http://www.oracle.com/technetwork/java/index.html. Nouveautés de Java 7 Université Lumière Lyon 2 Faculté de Sciences Economiques et Gestion KHARKIV National University of Economic Introduction au Langage Java Master Informatique 1 ère année Julien Velcin http://mediamining.univ-lyon2.fr/velcin

Plus en détail

Cours 1: Java et les objets

Cours 1: Java et les objets Ressources Les interface homme-machine et le langage Java DUT première année Henri Garreta, Faculté des Sciences (Luminy) Cyril Pain-Barre & Sébastien Nedjar, IUT d Aix-Marseille (Aix) Cours 1: infodoc.iut.univ-aix.fr/~ihm/

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

Premiers Pas en Programmation Objet : les Classes et les Objets

Premiers Pas en Programmation Objet : les Classes et les Objets Chapitre 2 Premiers Pas en Programmation Objet : les Classes et les Objets Dans la première partie de ce cours, nous avons appris à manipuler des objets de type simple : entiers, doubles, caractères, booléens.

Plus en détail

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

1. Structure d un programme C. 2. Commentaire: /*..texte */ On utilise aussi le commentaire du C++ qui est valable pour C: 3. 1. Structure d un programme C Un programme est un ensemble de fonctions. La fonction "main" constitue le point d entrée pour l exécution. Un exemple simple : #include int main() { printf ( this

Plus en détail

Java DataBaseConnectivity

Java DataBaseConnectivity Java DataBaseConnectivity JDBC JDBC est une API Java (ensemble de classes et d interfaces défini par SUN et les acteurs du domaine des SGBD) permettant d accéder aux bases de données à l aide du langage

Plus en détail

Package Java.util Classe générique

Package Java.util Classe générique Package Java.util Classe générique 1 Classe Vector La taille est dynamique: dès qu un tableau vectoriel est plein, sa taille est doublée, triplée, etc. automatiquement Les cases sont de type Object add(object

Plus en détail

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites

Java Licence Professionnelle 2009-2010. Cours 7 : Classes et méthodes abstraites Java Licence Professionnelle 2009-2010 Cours 7 : Classes et méthodes abstraites 1 Java Classes et méthodes abstraites - Le mécanisme des classes abstraites permet de définir des comportements (méthodes)

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

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

Rappel. Analyse de Données Structurées - Cours 12. Un langage avec des déclaration locales. Exemple d'un programme Rappel Ralf Treinen Université Paris Diderot UFR Informatique Laboratoire Preuves, Programmes et Systèmes treinen@pps.univ-paris-diderot.fr 6 mai 2015 Jusqu'à maintenant : un petit langage de programmation

Plus en détail

INITIATION AU LANGAGE JAVA

INITIATION AU LANGAGE JAVA INITIATION AU LANGAGE JAVA I. Présentation 1.1 Historique : Au début des années 90, Sun travaillait sur un projet visant à concevoir des logiciels simples et performants exécutés dans des PDA (Personnal

Plus en détail

TP1. Outils Java Eléments de correction

TP1. Outils Java Eléments de correction c sep. 2008, v2.1 Java TP1. Outils Java Eléments de correction Sébastien Jean Le but de ce TP, sur une séance, est de se familiariser avec les outils de développement et de documentation Java fournis par

Plus en détail

Introduction à la programmation concurrente

Introduction à la programmation concurrente Introduction à la programmation concurrente Moniteurs Yann Thoma Reconfigurable and Embedded Digital Systems Institute Haute Ecole d Ingénierie et de Gestion du Canton de Vaud This work is licensed under

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

TP1 : Initiation à Java et Eclipse

TP1 : Initiation à Java et Eclipse TP1 : Initiation à Java et Eclipse 1 I. Objectif du TP TP1 : Initiation à Java et Eclipse Programmation Mobile Initiation à l environnement Eclipse et aux notions de base du langage Java. II. Environnement

Plus en détail

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5

SHERLOCK 7. Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 SHERLOCK 7 Version 1.2.0 du 01/09/09 JAVASCRIPT 1.5 Cette note montre comment intégrer un script Java dans une investigation Sherlock et les différents aspects de Java script. S T E M M E R I M A G I N

Plus en détail

Programmation Par Objets

Programmation Par Objets Programmation Par Objets Structures de données package java.util B. Carré Polytech Lille 1 Tableaux et structures de données Tableaux «Objets» taille fixe type des éléments : primitif (homogène) ou objets

Plus en détail

Évaluation et implémentation des langages

É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

Plus en détail

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8

SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 SYNC FRAMEWORK AVEC SQLITE POUR APPLICATIONS WINDOWS STORE (WINRT) ET WINDOWS PHONE 8 INTRODUCTION Bonjour à tous; Aujourd hui je publie une nouvelle version de l adaptation de la Sync Framework Toolkit,

Plus en détail

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011

Exclusion Mutuelle. Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr. Université de Provence. 9 février 2011 Arnaud Labourel Courriel : arnaud.labourel@lif.univ-mrs.fr Université de Provence 9 février 2011 Arnaud Labourel (Université de Provence) Exclusion Mutuelle 9 février 2011 1 / 53 Contexte Epistémologique

Plus en détail

Découverte de Python

Découverte de Python Découverte de Python Python est un des langages informatiques au programme des concours à partir de la session 2015. Ce tutoriel vous permettra de vous mettre à peu près à niveau de ce qui a été fait en

Plus en détail

TP, première séquence d exercices.

TP, première séquence d exercices. TP, première séquence d exercices. Benoît Valiron benoit.valiron@lipn.univ-paris13.fr 7 novembre 2010 Introduction Vous écrirez les réponses aux questions courtes sur une feuille à rendre à la fin de la

Plus en détail

Chapitre I Notions de base et outils de travail

Chapitre I Notions de base et outils de travail Chapitre I Notions de base et outils de travail Objectifs Connaître les principes fondateurs et l historique du langage Java S informer des principales caractéristiques du langage Java Connaître l environnement

Plus en détail

Chap III : Les tableaux

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

Plus en détail

ACTIVITÉ DE PROGRAMMATION

ACTIVITÉ DE PROGRAMMATION ACTIVITÉ DE PROGRAMMATION The purpose of the Implementation Process is to realize a specified system element. ISO/IEC 12207 Sébastien Adam Une introduction 2 Introduction Ø Contenu Utilité de l ordinateur,

Plus en détail

Le langage C. Introduction, guide de reference

Le langage C. Introduction, guide de reference Le langage C Introduction, guide de reference Ce document est une présentation du langage de programmation C, de sa syntaxe et de ses spécificités. Il est destiné essentiellement à servir de mémo-guide

Plus en détail

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

Environnements de développement (intégrés) Environnements de développement (intégrés) Tests unitaires, outils de couverture de code Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure

Plus en détail

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

Compléments de documentation Scilab : affichage de texte et formatage de nombres Université des Sciences et Technologies de Lille U.F.R. de Mathématiques Pures et Appliquées Agrégation externe Année 2002-2003 Compléments de documentation Scilab : affichage de texte et formatage de

Plus en détail

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

TD3: tableaux avancées, première classe et chaînes TD3: tableaux avancées, première classe et chaînes de caractères 1 Lestableaux 1.1 Élémentsthéoriques Déclaration des tableaux Pour la déclaration des tableaux, deux notations sont possibles. La première

Plus en détail

Encryptions, compression et partitionnement des données

Encryptions, compression et partitionnement des données Encryptions, compression et partitionnement des données Version 1.0 Grégory CASANOVA 2 Compression, encryption et partitionnement des données Sommaire 1 Introduction... 3 2 Encryption transparente des

Plus en détail

Les structures. Chapitre 3

Les structures. Chapitre 3 Chapitre 3 Les structures Nous continuons notre étude des structures de données qui sont prédéfinies dans la plupart des langages informatiques. La structure de tableau permet de regrouper un certain nombre

Plus en détail

Remote Method Invocation Les classes implémentant Serializable

Remote Method Invocation Les classes implémentant Serializable Parallélisme Architecture Eric Goubault Commissariat à l Energie Atomique Saclay Classe qui implémente la méthode distante (serveur): - dont les méthodes renvoient un objet serializable - ou plus généralement

Plus en détail

Solutions du chapitre 4

Solutions du chapitre 4 Solutions du chapitre 4 Structures de contrôle: première partie 4.9 Identifiez et corrigez les erreurs (il peut y en avoir plus d une par segment de code) de chacune des proposition suivantes: a) if (

Plus en détail

Polymorphisme, la classe Object, les package et la visibilité en Java... 1

Polymorphisme, la classe Object, les package et la visibilité en Java... 1 Polymorphisme, la classe Object, les package et la visibilité en Java. Polymorphisme, la classe Object, les package et la visibilité en Java.... 1 Polymorphisme.... 1 Le DownCast... 4 La Classe Object....

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

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

UE Programmation Impérative Licence 2ème Année 2014 2015 UE Programmation Impérative Licence 2 ème Année 2014 2015 Informations pratiques Équipe Pédagogique Florence Cloppet Neilze Dorta Nicolas Loménie prenom.nom@mi.parisdescartes.fr 2 Programmation Impérative

Plus en détail

Interpréteur d algèbre relationnelle

Interpréteur d algèbre relationnelle Universite de Mons-Hainaut Faculté des Sciences Interpréteur d algèbre relationnelle Olivier Christiaen UMH-LIG1 Directeur du projet : M. Jef Wijsen Année académique 2003-2004 Première licence en informatique

Plus en détail

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

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

Plus en détail

Programme Compte bancaire (code)

Programme Compte bancaire (code) using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; Programme Compte bancaire (code) namespace compte_bancaire /// Classe Program public

Plus en détail

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

Langage C. Patrick Corde. Patrick.Corde@idris.fr. 22 juin 2015. Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Langage C Patrick Corde Patrick.Corde@idris.fr 22 juin 2015 Patrick Corde ( Patrick.Corde@idris.fr ) Langage C 22 juin 2015 1 / 289 Table des matières I 1 Présentation du langage C Historique Intérêts

Plus en détail

Le prototype de la fonction main()

Le prototype de la fonction main() Le prototype de la fonction main() 1. Introduction...1 2. Paramètres et type de retour de la fonction main()...1 3. Exemple 1...2 4. La fonction exit() du C...2 5. Détecter le code de retour d un programme

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET

ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET ALGORITHMIQUE ET PROGRAMMATION ORIENTEE OBJET I. INTRODUCTION 1.1. HISTORIQUE 1991: Concepts Java pour Sun -conception d'un langage pour des appareils électroniques(code embarqué) -syntaxe proche du C++

Plus en détail

Programmation système I Les entrées/sorties

Programmation système I Les entrées/sorties Programmation système I Les entrées/sorties DUT 1 re année Université de Marne La vallée Les entrées-sorties : E/O Entrées/Sorties : Opérations d échanges d informations dans un système informatique. Les

Plus en détail

ALGORITHMIQUE ET PROGRAMMATION En C

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

Plus en détail

Corrigé des exercices sur les références

Corrigé des exercices sur les références Corrigé des exercices sur les références Exercice 3.1.1 dessin Pour cet exercice, vous allez dessiner des structures de données au moyen de petits schémas analogues à ceux du cours, comportant la pile

Plus en détail

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

Cours de C++ François Laroussinie. 2 novembre 2005. Dept. d Informatique, ENS de Cachan Cours de C++ François Laroussinie Dept. d Informatique, ENS de Cachan 2 novembre 2005 Première partie I Introduction Introduction Introduction Algorithme et programmation Algorithme: méthode pour résoudre

Plus en détail

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

Bases de programmation. Cours 5. Structurer les données Bases de programmation. Cours 5. Structurer les données Pierre Boudes 1 er décembre 2014 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. Types char et

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

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