Rappel : évaluation d'expressions sans variables. Analyse de Données Structurées - Cours 10. Évaluation d'expressions avec variables
|
|
- Monique Julien
- il y a 6 ans
- Total affichages :
Transcription
1 Rappel : évaluation d'expressions sans variables Ralf Treinen Université Paris Diderot UFR Informatique Institut de Recherche en Informatique Fondamentale treinen@irif.fr c Ralf Treinen mars 2017 L'ensemble E des arbres de syntaxe abstraite représentant des expressions arithmétiques sans variables est déni comme suit : tout Int(n), où n N, est un élément de E si e 1, e 2 E, alors Sum(e 1, e 2 ) E si e 1, e 2 E, alors Product(e 1, e 2 ) E Règles sémantiques pour l'évaluation : Int(n) n e 1 v 1 e 2 v 2 Sum(e 1, e 2 ) v 1 + int v 2 e 1 v 1 e 2 v 2 Product(e 1, e 2 ) v 1 int v 2 Expressions avec variables L'ensemble E des arbres de syntaxe abstraite représentant des expressions arithmétiques est déni comme suit : tout Int(n), où n N, est un élément de E tout Ident(s), où s Σ, est un élément de E si e 1, e 2 E, alors Sum(e 1, e 2 ) E si e 1, e 2 E, alors Product(e 1, e 2 ) E Σ est l'alphabet utilisé pour former des noms de variables (par exemple, tous les caractères UNICODE). Éventuellement, l'ensemble des noms de variables possibles dans la syntaxe abstraite est plus riche que les noms de variables permis par la syntaxe concrète. Évaluation d'expressions avec variables Maintenant, l'évaluation d'une expression dépend aussi d'un contexte. La dénition du contexte dépend de l'application. Pour l'évaluation : Il s'agit d'une fonction partielle Σ N aussi appelée environnement de valeurs. Le jugement d'évaluation : Γ e v exprime : Dans l'environnement de valeurs Γ, la valeur de l'expression e est v. Exemple d'un jugement vrai : {x = 3, y = 5 Sum(Product(Ident(x), Int(2)), Ident(y)) 11
2 Règles pour l'évaluation des expressions avec variables Remarques Axiomes : Règles récursives : Γ Int(n) n Γ Ident(s) n si Γ(s) = n Γ e 1 v 1 Γ e 2 v 2 Γ Sum(e 1, e 2 ) v 1 + int v 2 Γ e 1 v 1 Γ e 2 v 2 Γ Product(e 1, e 2 ) v 1 int v 2 Quand s domaine(γ), alors le schéma d'axiome ne s'applique pas à Ident(s). Dans ce cas on ne peut donc pas calculer la valeur d'une expression qui contient Ident(s). Dans les règles récursives, comme Γ e 1 v 1 Γ e 2 v 2 Γ Sum(e 1, e 2 ) v 1 + int v 2 le contexte Γ utilisé dans les hypothèses est le même que dans la conclusion. Le calcul correspondant aux deux hypothèses peut donc se faire en parallèle. Implémentation : ValueEnvironment.java Implémentation : Expression.java I Implémentation des environnements de valeur : table de hachage. i m p o r t j a v a. u t i l. HashMap ; c l a s s V a l u e E n v i r o n m e n t e x t e n d s HashMap<S t r i n g, I n t e g e r > { a b s t r a c t c l a s s E x p r e s s i o n { a b s t r a c t i n t e v a l ( V a l u e E n v i r o n m e n t env ) ; c l a s s I n t e x t e n d s E x p r e s s i o n { p r i v a t e i n t v a l u e ; p u b l i c I n t ( i n t i ) { v a l u e=i ; p u b l i c i n t e v a l ( V a l u e E n v i r o n m e n t env ) { r e t u r n v a l u e ;
3 Implémentation : Expression.java II Implémentation : Expression.java III c l a s s I d e n t e x t e n d s E x p r e s s i o n { p r i v a t e S t r i n g name ; p u b l i c I d e n t ( S t r i n g s ) { name=s ; p u b l i c i n t e v a l ( V a l u e E n v i r o n m e n t env ) { r e t u r n env. g e t ( name ) ; c l a s s Sum e x t e n d s E x p r e s s i o n { p r i v a t e E x p r e s s i o n l e f t ; p r i v a t e E x p r e s s i o n r i g h t ; p u b l i c Sum( E x p r e s s i o n e1, E x p r e s s i o n e2 ) { l e f t =e1 ; r i g h t=e2 ; p u b l i c i n t e v a l ( V a l u e E n v i r o n m e n t env ) { r e t u r n l e f t. e v a l ( env ) + r i g h t. e v a l ( env ) ; c l a s s P r o d u c t e x t e n d s E x p r e s s i o n { p r i v a t e E x p r e s s i o n l e f t ; p r i v a t e E x p r e s s i o n r i g h t ; p u b l i c P r o d u c t ( E x p r e s s i o n e1, E x p r e s s i o n e2 ) { l e f t =e1 ; r i g h t=e2 ; p u b l i c i n t e v a l ( V a l u e E n v i r o n m e n t env ) { Implémentation : Expression.java IV Aectation et Achage Objectif : exécution de programmes. Première étape : séquences d'aectations à des variables, et d'instructions d'achage. r e t u r n l e f t. e v a l ( env ) r i g h t. e v a l ( env ) ; Instruction "print" pour acher, symbole " :=" pour l'aectation. Instructions terminées par le symbole " ;" Fragment de grammaire (le reste est comme avant) : S IL EOF IL ɛ I ; IL I ident := E print E
4 Règles sémantiques Instructions Syntaxe abstraite : L'ensemble I des arbres de syntaxe abstraite de sorte Instruction est déni comme suit : L'exécution d'une instruction peut modier l'environnement. Jugement Γ 1 i Γ 2 : l'exécution de l'instruction (ou de la liste d'instructions) i dans l'environnement Γ 1 résulte dans l'environnement Γ 2. Modélisation des achages : omise. tout Assign(s, e), où s Σ et e E, est un élément de I ; tout Print(e), où e E, est un élément de I. Règles sémantiques : Γ 1 e v Γ 1 Affect(s, e) Γ 1 [s v] Γ 1 Print(e) Γ 1 Remarques Listes d'instructions Les hypothèses des règles peuvent être des jugements qui portent sur des expressions de syntaxe abstraite de sorte diérente que la conclusion (exemple : règle pour Affect). Γ[s v] est l'environnement qui associe à s la valeur v, et qui associe Γ(x) à tout x s. La deuxième règle exprime que l'exécution de Print ne modie pas l'environnement. Syntaxe abstraite : L'ensemble IL des arbres de syntaxe abstraite de sorte InstructionList est déni comme suit : Nil est un élément de IL ; Si il IL et i I, alors Seq(i, il) est un élément de IL. Règles sémantiques : Γ 1 Nil Γ 1 Γ 1 i Γ 2 Γ 2 il Γ 3 Γ 1 Seq(i, il) Γ 3
5 Remarques Implémentation : Instruction.java I La première règle (qui est un axiome) exprime que l'exécution de Nil ne modie pas l'environnement. La deuxième règle impose maintenant un ordre sur l'exécution des deux composantes i et il : Donné initialement : Γ 1 et Seq(i, il). Il faut d'abord exécuter la première hypothèse qui donne, à partir de Γ 1 et de i, l'environnement Γ 2. Puis on peut exécuter la deuxième hypothèse qui donne, à partir de Γ 2 et de il, l'environnement Γ 3. L'implémentation utilise des tables de hachage modiables, il faut bien respecter l'ordre! a b s t r a c t c l a s s I n s t r u c t i o n { a b s t r a c t v o i d e x e c ( V a l u e E n v i r o n m e n t env ) ; c l a s s Assignment e x t e n d s I n s t r u c t i o n { p r i v a t e E x p r e s s i o n e x p r e s s i o n ; p r i v a t e S t r i n g v a r i a b l e ; p u b l i c Assignment ( S t r i n g v, E x p r e s s i o n e ) { e x p r e s s i o n=e ; v a r i a b l e=v ; p u b l i c v o i d e x e c ( V a l u e E n v i r o n m e n t env ) { env. put ( v a r i a b l e, e x p r e s s i o n. e v a l ( env ) ) ; Implémentation : Instruction.java II Implémentation : InstructionList.java I c l a s s P r i n t e x t e n d s I n s t r u c t i o n { p r i v a t e E x p r e s s i o n e x p r e s s i o n ; p u b l i c P r i n t ( E x p r e s s i o n e ) { e x p r e s s i o n=e ; p u b l i c v o i d e x e c ( V a l u e E n v i r o n m e n t env ) { System. out. p r i n t l n ( e x p r e s s i o n. e v a l ( env ) ) ; a b s t r a c t c l a s s I n s t r u c t i o n L i s t { a b s t r a c t v o i d e x e c ( V a l u e E n v i r o n m e n t env ) ; c l a s s N i l e x t e n d s I n s t r u c t i o n L i s t { p u b l i c N i l ( ) { p u b l i c v o i d e x e c ( V a l u e E n v i r o n m e n t env ) { c l a s s Seq e x t e n d s I n s t r u c t i o n L i s t { p r i v a t e I n s t r u c t i o n head ; p r i v a t e I n s t r u c t i o n L i s t r e s t ;
6 Implémentation : InstructionList.java II Expressions et Types p u b l i c Seq ( I n s t r u c t i o n i, I n s t r u c t i o n L i s t i l ) { head=i ; r e s t= i l ; p u b l i c v o i d e x e c ( V a l u e E n v i r o n m e n t env ) { head. e x e c ( env ) ; r e s t. e x e c ( env ) ; Pour l'exécution des programmes avec, par exemple des instructions conditionnelles et des boucles, nous avons besoin des expressions booléennes. On ne peut pas faire la distinction entre expressions entières et expressions booléennes par la grammaire à cause des variables : le type d'une expression contenant des variables dépend maintenant de la déclaration de ces variables. statique et typage dynamique statique et typage dynamique statique : vérication des types après construction de la syntaxe abstraite, et avant l'exécution. Avantage : Sécurité. Une fois le typage vérié par le compilateur on sait que des erreurs de type ne peuvent plus se produire (sauf dans certains langages de programmations qui permettent de contourner le typage). Avantage : le typage peut annoter la syntaxe abstraite par des types des expressions, ce qui simplie l'exécution. Désambiguïson des opérateurs surchargés. Exemples : Java, OCaml,... dynamique : vérication des types pendant l'exécution du programme, quand on applique un opérateur à des valeurs. Avantage : plus de exibilité (mais : exibilité aussi possible dans le cas statique, par ex. polymorphie). Avantage : programmes moins verbeux, car il n'est pas nécessaire de déclarer les variables avec leur type (mais : le même avantage peut être obtenu par une inférence de type). Exemples : Python, bash, Perl.
7 Retour sur quelques langages de programmation Bash Quelques langages de programmation que vous avez vu, ou allez voir, pendant vos études, regardés à la lumière du cours ADS4 : Découpage en unités lexicales à la (JF)LEX? Construction d'un arbre de syntaxe abstraite? Quel système de typage? Analyse syntaxique à la volée (intercalée avec l'exécution). Un mot peut être un mot clé ou pas selon l'endroit où il parait. Possibilité de faire interpréter une chaîne de caractères comme une commande de la shell (commande eval). dynamique : bash ne construit pas d'arbre de syntaxe abstraite avant l'exécution, il n'y a donc aucun moyen pour analyser statiquement le typage. Bash : analyse syntaxique à la volée Bash : si un mot est un mot clé dépend du contexte #! / b i n / bash # l e s deux p r e m i è r e s l i g n e s s o n t ex é c u t é e s a v a n t # que l ' e r r e u r de s y n t a x e e s t d e t e c t é e. echo " h e l l o " echo " b o n j o u r " i f f i #! / b i n / bash f o r do i n f o r do i n echo done ; do echo $do ; done
8 Bash : eval Python #! / b i n / bash # é v a l u a t i o n d ' une cha î ne c o n s t r u i t e p e n d a n t # l ' ex é c u t i o n du programme. i =10 mot=" i f ( ( i > 0 ) ) ; t h e n echo ' i f ' ; ( ( i )); f i " e v a l $mot Analyse syntaxique complète avant exécution. dynamique. mot=$ ( sed e ' s / i f / w h i l e /g ' e ' s / then /do / ' \ e ' s / f i / done / ' <<< $mot ) e v a l "$mot" Python : analyse syntaxique complète Python : typage dynamique #! / u s r / b i n / p y t h o n # e r r e u r de s y n t a x e d e t e c t e e a v a n t e x e c u t i o n p r i n t " h e l l o " p r i n t " b o n j o u r " i f f i #! / u s r / b i n / p y t h o n # l a meme v a r i a b l e p e u t p r e n d r e d e s v a l e u r s de # t y p e d i f f e r e n t. x=42 p r i n t x x=true p r i n t x
9 Python : typage dynamique Java #! / u s r / b i n / p y t h o n # e r r e u r de t y p a g e s e u l e m e n t d e t e c t e e quand # l a b r a n c h e e l s e e s t e x e c u t e e import s y s r e a d=s y s. s t d i n. r e a d l i n e ( ) i f r e a d!= ' coocoo \n ' : p r i n t e l s e : p r i n t ( ' abc ' & ' d e f ' ) Construction de la syntaxe abstraite par le compilateur. statique. L'information de typage doit être écrite explicitement dans le programme. Vérication statique (donc, par le compilateur) des exceptions OCaml OCaml : inférence de types statique Inférence de type : le compilateur infère les types des identicateurs, il n'est pas nécessaire de les écrire dans le programme. On peut écrire dans le programme les types des identicateurs. Avantage : programmes concis, et au même moment sûreté de typage. ( l e t y p e de l a f o n c t i o n f e s t i n f é r é ) l e t somme x y = x + y ; ; ( e r r e u r de t y p a g e ) somme " h e l l o " " b o n j o u r " ; ; Surcharge des opérateurs très limitée. Voir le cours Programmation Fonctionnelle du L3
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étailCours 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étailACTIVITÉ 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étailSuivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs)
Modularité Extensions Suivant les langages de programmation, modules plus avancés : modules imbriqués modules paramétrés par des modules (foncteurs) généricité modules de première classe : peuvent être
Plus en détailLogiciel Libre Cours 2 Fondements: Programmation
Logiciel Libre Cours 2 Fondements: Programmation Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailPerl Console. Votre compagnon pour développer en Perl. Les Journées du Perl 2007 16, 17 novembre, Lyon. Alexis Sukrieh <sukria@sukria.
Perl Console Votre compagnon pour développer en Perl Les Journées du Perl 2007 16, 17 novembre, Lyon Alexis Sukrieh Plan Pourquoi une console? Le modèle «Read-Eval-Print-Loop» Dépendances
Plus en détailCours de Programmation 2
Cours de Programmation 2 Programmation à moyenne et large échelle 1. Programmation modulaire 2. Programmation orientée objet 3. Programmation concurrente, distribuée 4. Programmation monadique 5. Les programmes
Plus en détailÉ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étailMachines Virtuelles. et bazard autour. Rémi Forax
Machines Virtuelles et bazard autour Rémi Forax Avant propos Quelle est la complexité du code ci-dessous? Avec un processeur à 1Ghz, combien de temps le calcul prendra t'il? public static void main(string[]
Plus en détailTraduction 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
Plus en détailAnalyse de sécurité de logiciels système par typage statique
Contexte Modélisation Expérimentation Conclusion Analyse de sécurité de logiciels système par typage statique Application au noyau Linux Étienne Millon UPMC/LIP6 Airbus Group Innovations Sous la direction
Plus en détailLogiciel Libre Cours 3 Fondements: Génie Logiciel
Logiciel Libre Cours 3 Fondements: Génie Logiciel Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot 2013 2014 URL http://upsilon.cc/zack/teaching/1314/freesoftware/
Plus en détailTP 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étailLes chaînes de caractères
Les chaînes de caractères Dans un programme informatique, les chaînes de caractères servent à stocker les informations non numériques comme par exemple une liste de nom de personne ou des adresses. Il
Plus en détail1/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
Plus en détaillength : A N add : Z Z Z (n 1, n 2 ) n 1 + n 2
1 Univ. Lille1 - Licence info 3ème année 2013-2014 Expression Logique et Fonctionnelle... Évidemment Cours n o 1 : Introduction à la programmation fonctionnelle 1 Introduction La programmation fonctionnelle
Plus en détailCours 1 : Qu est-ce que la programmation?
1/65 Introduction à la programmation Cours 1 : Qu est-ce que la programmation? Yann Régis-Gianas yrg@pps.univ-paris-diderot.fr Université Paris Diderot Paris 7 2/65 1. Sortez un appareil qui peut se rendre
Plus en détailVérification formelle de la plate-forme Java Card
Vérification formelle de la plate-forme Java Card Thèse de doctorat Guillaume Dufay INRIA Sophia Antipolis Cartes à puce intelligentes Java Card : Environnement de programmation dédié. Dernières générations
Plus en détailCours Langage C/C++ Programmation modulaire
Cours Langage C/C++ Programmation modulaire Thierry Vaira BTS IRIS Avignon tvaira@free.fr «v0.1 Rappel Programmation modulaire (1/2) Le découpage d'un programme en sous-programmes est appelée programmation
Plus en détailTP 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étailCours d Algorithmique-Programmation 2 e partie (IAP2): programmation 24 octobre 2007impérative 1 / 44 et. structures de données simples
Cours d Algorithmique-Programmation 2 e partie (IAP2): programmation impérative et structures de données simples Introduction au langage C Sandrine Blazy - 1ère année 24 octobre 2007 Cours d Algorithmique-Programmation
Plus en détailPour 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étailCompilation (INF 564)
Présentation du cours Le processeur MIPS Programmation du MIPS 1 Compilation (INF 564) Introduction & architecture MIPS François Pottier 10 décembre 2014 Présentation du cours Le processeur MIPS Programmation
Plus en détailTélécom Nancy Année 2013-2014
Télécom Nancy Année 2013-2014 Rapport 1A Ajout du langage C dans la Programmer's Learning Machine GIANNINI Valentin Loria 615, rue du Jardin Botanique 54600, Villers-Lès-Nancy Maître de stage : QUINSON
Plus en détailPré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étailClasses 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.
Plus en détailGestion mémoire et Représentation intermédiaire
Gestion mémoire et Représentation intermédiaire Pablo de Oliveira March 23, 2015 I Gestion Memoire Variables locales Les variables locales sont stockées: Soit dans un registre,
Plus en détailInitiation à la programmation en Python
I-Conventions Initiation à la programmation en Python Nom : Prénom : Une commande Python sera écrite en caractère gras. Exemples : print 'Bonjour' max=input("nombre maximum autorisé :") Le résultat de
Plus en détailLMI 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étailPrincipes des langages de programmation INF 321. Eric Goubault
Principes des langages de programmation INF 321 Eric Goubault 24 mars 2014 2 Table des matières 1 Introduction 7 2 Programmation impérative 11 2.1 Variables et types........................... 11 2.2 Codage
Plus en détailCours Composant 2. Qualité logicielle et spécications algébriques
UPMC Paris Universitas Master Informatique STL Cours Composant 2. Qualité logicielle et spécications algébriques c 2005-2008 Frédéric Peschanski UPMC Paris Universitas 24 février 2008 c 2005-2008 Frédéric
Plus en détailQu est-ce qu un résumé?
Méthodologie d analyse et de mémoire Résumer un texte Quelques astuces et techniques Licence GSINFO Département GEII IUT d Évry N. Abchiche Mimouni 1 Qu est-ce qu un résumé? Exprime de façon brève, les
Plus en détailChapitre VI- La validation de la composition.
Chapitre VI- La validation de la composition. Objectifs du chapitre : Expliquer les conséquences de l utilisation de règles de typage souples dans SEP. Présenter le mécanisme de validation des connexions
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 Pierre Boudes 28 septembre 2011 This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike
Plus en détailSTAGE 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
Plus en détail3. SPÉCIFICATIONS DU LOGICIEL. de l'expression des besoins à la conception. Spécifications fonctionnelles Analyse fonctionnelle et méthodes
PLAN CYCLE DE VIE D'UN LOGICIEL EXPRESSION DES BESOINS SPÉCIFICATIONS DU LOGICIEL CONCEPTION DU LOGICIEL LA PROGRAMMATION TESTS ET MISE AU POINT DOCUMENTATION CONCLUSION C.Crochepeyre Génie Logiciel Diapason
Plus en détailJava - la plateforme
Java - la plateforme Java la plateforme Java? VM GC JIT Java Aujourd'hui 3 environnements d'exécutions différents Java ME (Micro Edition) pour PDA, téléphone Android (Java SE moins certain paquetages)
Plus en détailMachines virtuelles Cours 1 : Introduction
Machines virtuelles Cours 1 : Introduction Pierre Letouzey 1 pierre.letouzey@inria.fr PPS - Université Denis Diderot Paris 7 janvier 2012 1. Merci à Y. Régis-Gianas pour les transparents Qu est-ce qu une
Plus en détailAnne 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étailChapitre 2. Classes et objets
Chapitre 2: Classes et Objets 1/10 Chapitre 2 Classes et objets Chapitre 2: Classes et Objets 2/10 Approche Orientée Objet Idée de base de A.O.O. repose sur l'observation de la façon dont nous procédons
Plus en détailEntraînement au concours ACM-ICPC
Entraînement au concours ACM-ICPC Concours ACM-ICPC : format et stratégies Page 1 / 16 Plan Présentation Stratégies de base Page 2 / 16 Qu est-ce que c est? ACM-ICPC : International Collegiate Programming
Plus en détailUFR d Informatique. FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018
UFR d Informatique FORMATION MASTER Domaine SCIENCES, TECHNOLOGIE, SANTE Mention INFORMATIQUE 2014-2018 Objectif L UFR d informatique propose au niveau du master, deux spécialités sous la mention informatique
Plus en détailINITIATION 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étailCours 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étailMaster Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2.
Master Modélisation Aléatoire Paris VII, Cours Méthodes de Monte Carlo en nance et C++, TP n 2. Techniques de correction pour les options barrières 25 janvier 2007 Exercice à rendre individuellement lors
Plus en détailUEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.
UEO11 COURS/TD 1 Contenu du semestre Cours et TDs sont intégrés L objectif de ce cours équivalent a 6h de cours, 10h de TD et 8h de TP est le suivant : - initiation à l algorithmique - notions de bases
Plus en détailProgrammation Web. Madalina Croitoru IUT Montpellier
Programmation Web Madalina Croitoru IUT Montpellier Organisation du cours 4 semaines 4 ½ h / semaine: 2heures cours 3 ½ heures TP Notation: continue interrogation cours + rendu à la fin de chaque séance
Plus en détailGénie Logiciel avec Ada. 4 février 2013
Génie Logiciel 4 février 2013 Plan I. Généralités II. Structures linéaires III. Exceptions IV. Structures arborescentes V. Dictionnaires I. Principes II. Notions propres à la POO I. Principes Chapitre
Plus en détailProgrammer 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étailPropagation sur réseau statique et dynamique
Université de la Méditerranée UFR Sciences de Luminy Rapport de stage informatique pour le Master 2 de Physique, Parcours Physique Théorique et Mathématique, Physique des Particules et Astroparticules.
Plus en détailIFT2255 : Génie logiciel
IFT2255 : Génie logiciel Chapitre 6 - Analyse orientée objets Section 1. Introduction à UML Julie Vachon et Houari Sahraoui 6.1. Introduction à UML 1. Vers une approche orientée objet 2. Introduction ti
Plus en détailGrandes lignes ASTRÉE. Logiciels critiques. Outils de certification classiques. Inspection manuelle. Definition. Test
Grandes lignes Analyseur Statique de logiciels Temps RÉel Embarqués École Polytechnique École Normale Supérieure Mercredi 18 juillet 2005 1 Présentation d 2 Cadre théorique de l interprétation abstraite
Plus en détailBases Java - Eclipse / Netbeans
Institut Galilée PDJ Année 2014-2015 Master 1 Environnements Java T.P. 1 Bases Java - Eclipse / Netbeans Il existe plusieurs environnements Java. Il est ESSENTIEL d utiliser la bonne version, et un environnement
Plus en détailCours 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étailAlgorithmique 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étailInfo0101 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étailVérification et Validation
Vérification et Validation Génie Logiciel Master 1 II Mihaela Sighireanu Objectifs I. Introduire la vérification et la validation (V&V) du logiciel et comprendre leurs différences. II.Définir le plan de
Plus en détailINFORMATIQUE & WEB. PARCOURS CERTIFICAT PROFESSIONNEL Programmation de sites Web. 1 an 7 MODULES. Code du diplôme : CP09
INFORMATIQUE & WEB Code du diplôme : CP09 Passionné par l informatique et le web, vous souhaitez obtenir une certification dans un domaine porteur et enrichir votre CV? PARCOURS CERTIFICAT PROFESSIONNEL
Plus en détailbasée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML
basée sur le cours de Bertrand Legal, maître de conférences à l ENSEIRB www.enseirb.fr/~legal Olivier Augereau Formation UML http://olivier-augereau.com Sommaire Introduction I) Les bases II) Les diagrammes
Plus en détailArgument-fetching dataflow machine de G.R. Gao et J.B. Dennis (McGill, 1988) = machine dataflow sans flux de données
EARTH et Threaded-C: Éléments clés du manuel de références de Threaded-C Bref historique de EARTH et Threaded-C Ancêtres de l architecture EARTH: Slide 1 Machine à flux de données statique de J.B. Dennis
Plus en détailStructure 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étailTP : Shell Scripts. 1 Remarque générale. 2 Mise en jambe. 3 Avec des si. Systèmes et scripts
E3FI ESIEE Paris Systèmes et scripts B. Perret TP : Shell Scripts 1 Remarque générale Lorsque vous cherchez des informations sur Internet, n'oubliez pas que langage de shell script que nous avons vu correspond
Plus en détailChap 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étailLES 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étailchapitre 4 Nombres de Catalan
chapitre 4 Nombres de Catalan I Dénitions Dénition 1 La suite de Catalan (C n ) n est la suite dénie par C 0 = 1 et, pour tout n N, C n+1 = C k C n k. Exemple 2 On trouve rapidement C 0 = 1, C 1 = 1, C
Plus en détailMachines 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étailRecherche dans un tableau
Chapitre 3 Recherche dans un tableau 3.1 Introduction 3.1.1 Tranche On appelle tranche de tableau, la donnée d'un tableau t et de deux indices a et b. On note cette tranche t.(a..b). Exemple 3.1 : 3 6
Plus en détailÉléments de programmation et introduction à Java
Éléments de programmation et introduction à Java Jean-Baptiste Vioix (jean-baptiste.vioix@iut-dijon.u-bourgogne.fr) IUT de Dijon-Auxerre - LE2I http://jb.vioix.free.fr 1-20 Les différents langages informatiques
Plus en détailProgrammation. fonctionnelle, impérative, logique et orientée objet
Programmation fonctionnelle, impérative, logique et orientée objet Introduction Les langages de programmation permettent de décrire des calculs de façon plus abstraite qu'un programme machine. Les programmes
Plus en détailAlgorithmes d'apprentissage
Algorithmes d'apprentissage 1 Agents qui apprennent à partir d'exemples La problématique : prise de décision automatisée à partir d'un ensemble d'exemples Diagnostic médical Réponse à une demande de prêt
Plus en détailCours d algorithmique pour la classe de 2nde
Cours d algorithmique pour la classe de 2nde F.Gaudon 10 août 2009 Table des matières 1 Avant la programmation 2 1.1 Qu est ce qu un algorithme?................................. 2 1.2 Qu est ce qu un langage
Plus en détailProjet 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étailInformatique : Création de site Web Master 2 ANI TP 1
Informatique : Création de site Web Master 2 ANI TP 1 Objectifs du TP : créer des pages Web en HTML EXERCICE I : AFFICHAGE DE DOCUMENT HTML 1. Ouvrez le bloc-note, recopiez-y le document suivant :
Plus en détailExpression 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étailRapidMiner. Data Mining. 1 Introduction. 2 Prise en main. Master Maths Finances 2010/2011. 1.1 Présentation. 1.2 Ressources
Master Maths Finances 2010/2011 Data Mining janvier 2011 RapidMiner 1 Introduction 1.1 Présentation RapidMiner est un logiciel open source et gratuit dédié au data mining. Il contient de nombreux outils
Plus en détailSQL Parser XML Xquery : Approche de détection des injections SQL
SQL Parser XML Xquery : Approche de détection des injections SQL Ramahefy T.R. 1, Rakotomiraho S. 2, Rabeherimanana L. 3 Laboratoire de Recherche Systèmes Embarqués, Instrumentation et Modélisation des
Plus en détailF. Barthélemy. 17 mai 2005
Typage de la généricité en Java F. Barthélemy 17 mai 2005 1 Le shéma général La g én éricit é en Java est un ajout r éalis é sur un langage existant depuis d éjà une dizaine d ann ées, avec des contraintes
Plus en détailIntroduction à 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étailmodules & compilation
Programmation fonctionnelle avec OCaml 3ème séance, 19 mars 2015 modules & compilation samuel.hornus@inria.fr http ://www.loria.fr/ shornus/ocaml/ Modules Un module regroupe un ensemble de définitions
Plus en détailBernard 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étailUE C avancé cours 1: introduction et révisions
Introduction Types Structures de contrôle Exemple UE C avancé cours 1: introduction et révisions Jean-Lou Desbarbieux et Stéphane Doncieux UMPC 2004/2005 Introduction Types Structures de contrôle Exemple
Plus en détailUtilisation de l analyse statique comme outil d aide au développement. par. Yves Gauthier
Utilisation de l analyse statique comme outil d aide au développement par Yves Gauthier essai présenté au Département d'informatique en vue de l'obtention du grade de maître en technologies de l information
Plus en détailChapitre 1 Qu est-ce qu une expression régulière?
Chapitre 1 Qu est-ce qu une expression régulière? Les ordinateurs n ont pas du tout la même conception des textes que nous : pour nous, un texte est un ensemble d idées couchées sur papier. Nous nous en
Plus en détailConception de circuits numériques et architecture des ordinateurs
Conception de circuits numériques et architecture des ordinateurs Frédéric Pétrot Année universitaire 2014-2015 Structure du cours C1 C2 C3 C4 C5 C6 C7 C8 C9 C10 C11 Codage des nombres en base 2, logique
Plus en détailCorrection Code nécessaire à la compilation : let bs ="\\" let nl = "\n" ;; let appliquer = List.map ;; (* affichage d'un noeud *)
Correction Code nécessaire à la compilation : let bs ="\\" let nl = "\n" let appliquer = List.map (* affichage d'un noeud *) let (noeud_vers_ch : int -> string) = function n -> "fib(" ^ (string_of_int
Plus en détailCours intensif Java. 1er cours: de C à Java. Enrica DUCHI LIAFA, Paris 7. Septembre 2009. Enrica.Duchi@liafa.jussieu.fr
. Cours intensif Java 1er cours: de C à Java Septembre 2009 Enrica DUCHI LIAFA, Paris 7 Enrica.Duchi@liafa.jussieu.fr LANGAGES DE PROGRAMMATION Pour exécuter un algorithme sur un ordinateur il faut le
Plus en détailOptimisation de logiciels de modélisation sur centre de calcul
Optimisation de logiciels de modélisation sur centre de calcul Gérald Monard Pôle de Chimie Théorique http://www.monard.info/ Introduction Les ordinateurs sont des appareils électroniques permettant d
Plus en détailBases 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étailTable des matières PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS. Introduction
PRESENTATION DU LANGAGE DS2 ET DE SES APPLICATIONS Depuis SAS 9.2 TS2M3, SAS propose un nouveau langage de programmation permettant de créer et gérer des tables SAS : le DS2 («Data Step 2»). Ces nouveautés
Plus en détailPeut-on tout programmer?
Chapitre 8 Peut-on tout programmer? 8.1 Que peut-on programmer? Vous voici au terme de votre initiation à la programmation. Vous avez vu comment représenter des données de plus en plus structurées à partir
Plus en détailALGORITHMIQUE 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étailINTRODUCTION 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étailMOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006
MOTEUR DE WORKFLOW Mise en oeuvre d'openwfe Version 1.0-25 septembre 2006 SOMMAIRE 1 AVANT PROPOS...3 2 PRÉSENTATION...4 2.1 Quelques définitions...4 2.2 Besoins d'intégration d'un moteur de workflow...4
Plus en détailChapitre 1 : Introduction aux bases de données
Chapitre 1 : Introduction aux bases de données Les Bases de Données occupent aujourd'hui une place de plus en plus importante dans les systèmes informatiques. Les Systèmes de Gestion de Bases de Données
Plus en détailDE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51
DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51 PLAN DU COURS Introduction au langage C Notions de compilation Variables, types, constantes, tableaux, opérateurs Entrées sorties de base Structures de
Plus en détailPourquoi R devient incontournable en recherche, enseignement et développement
Pourquoi R devient incontournable en recherche, enseignement et développement Rencontre R, BoRdeaux 2012 Plan Introduction Recherche Enseignement Développement (entreprise) Conclusions Les logiciels de
Plus en détailTP3 : Creation de tables 1 seance
Universite de Versailles IUT de Velizy - Algorithmique 2005/2006 TP3 : Creation de tables 1 seance Objectif : Creation et modication de tables dans une base de donnees. Avant de commencer ce TP, terminer
Plus en détailMATHÉMATIQUES. Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN
MATHÉMATIQUES Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN Mars 2001 MATHÉMATIQUES Les préalables pour l algèbre MAT-P020-1 DÉFINITION DU DOMAINE D EXAMEN Mars 2001 Direction
Plus en détailGénérer du code à partir d une description de haut niveau
Cedric Dumoulin Générer du code à partir d une description de haut niveau Ce projet vise à fournir un environnement de développement permettant de modéliser des UI Android à un haut niveau d abstraction,
Plus en détail