Sémantique opérationnelle
|
|
- Jean-Noël Breton
- il y a 7 ans
- Total affichages :
Transcription
1 Evaluation d'une expression Sans variable libre Vu dans le châpitre 2 Avec variables libres #pi *. r *. r ;; #let f = fun x -> if v > 3*2 then x+3 else x*x*3 + v;; Les variables qui apparaissent libres dans l'expression (pi et r dans la première et v dans la seconde) doivent avoir été définies au préalable. L'interpréteur doit trouver dans l'environnement les valeurs auxquelles elles sont liées.
2 Les notions de base Liaison C'est un couple (i, v) ou i est un identificateur et v une valeur. On dit que i est liee a v. Environnement C'est une liste de liaisons Environnement initial: E 0 C'est l'environnement chargé quand on lance Ocaml. Définition globale Rajoute une liaison à l'environnement courant
3 Exemple Environnement: E 0 #let pi = 3.14 ;; (pi, 3.14) :: E 0 # let r = 2.1 ;; (r, 2.1) :: (pi, 3.14) :: E 0 #let s = pi*.r*.r ;; (s, ) :: (r, 2.1) :: (pi, 3.14) :: E 0 #let pi = ;; (pi, ) :: (s, ) :: (r, 2.1) :: (pi, 3.14) :: E 0 L'ancienne valeur de pi n'est plus accessible # pi;; - : float =
4 Définitions en parallèle Toutes leurs évaluations se font dans l'environnement courant Celui-ci est ensuite modifié # let x = 0;; #let x = 3 and y= x+1;; x : int = 3 y : int = 1 Environnement courant E (x, 0) :: E (x,3) :: (y,1) :: (x, 0) :: E
5 Définitions locales Modifient momentanément l'environnement C'est dans cet environnement modifié que se fait l'évaluation de l'expression sur laquelle elles portent In fine, l'environnement est inchangé
6 Environnement courant: #let x = 10 in x+1;; Définitions locales: exemples (x,3) :: (y,1) :: (x, 0) :: E x+1 évaluée dans (x, 10) :: (x,3) :: (y,1) :: (x, 0) :: E - : int = 11 Environnement courant: (x,3) :: (y,1) :: (x, 0) :: E #let x=x+1 and y=x+2 in x+y;; x+1 et y évalués dans l'environnement courant x+y évalué dans (x,4) ::(y,5):: (x,3) :: (y,1) :: (x, 0) :: E - : int = 9 Environnement courant: (x,3) :: (y,1) :: (x, 0) :: E
7 Définitions locales: exemples Environnement courant: (x,3) :: (y,1) :: (x, 0) :: E #let x = x+1 in let y = x+2 in x+y;; x+1 évaluée dans l'environnement courant y est évalué dans (x, 4) :: (x,3) :: (y,1) :: (x, 0) :: E x+y évaluée dans (y,6) :: (x, 4) :: (x,3) :: (y,1) :: (x, 0) :: E - : int = 10 Environnement courant: (x,3) :: (y,1) :: (x, 0) :: E
8 Evaluation des fonctions Fermetures Soit une fonction non récursive définie par: let f = fun x -> corps Châpitre 2 : fun x -> corps est sous forme réduite et peut donc être considéré comme la valeur de f. Ceci est (presque) vrai en l'absence de VL (variables libres) (dans les implantations corps est simpifié) Cette définition pourrait ainsi rajouter à l'environnement courant la liaison : (f, fun x -> corps) Quid des définitions de fonctions avec variables libres? Quid des définitions récursives?
9 Evaluation des fonctions Fermetures Exemple #let v = 2;; #let f = fun x -> if v > 3*2 then x+3 else x*x*3 + v;; VL(corps) : v, valeur à chercher dans l'environnement E La valeur de f est un couple Let f = fun x -> corps < fun x -> simpl(corps), E > simpl(corps): simplification de corps E: environnement au moment de la définition de f
10 Evaluation des fonctions Nouvel environnement: Fermetures let f = fun x -> corps (f, <fun x -> simpl(corps), E> ) :: E Fermeture Car toute VL de simpl(corps) autre que x est liée dans E. Ce couple ne contient aucune VL dont la valeur n'est pas définie. En ce sens, il est fermé. On n'évalue pas mais on enregistre dans la fermeture tous les renseignements pour évaluer ultérieurement, au moment de l'application à un argument.
11 Evaluation des fonctions Liaisons statiques (ou lexicales) des VL Environnement courant : E 0 #let v = 2;; (v,2) :: E 0 #let f x = if v > 3*2 then x+3 else x*x*3 + v;; (f, < fun x -> x*x*3+v, (v,2)::e 0 >) :: (v,2)::e 0 #let v = 100;; (v,100) :: (f, < fun x -> x*x*3+v, (v,2)::e 0 >) :: (v,2)::e 0 Le v de corps f sera toujours évalué dans l'env. tel qu'il était au moment de la définition de f (enregistré dans la fermeture). La rédéfiniton ultérieure de v n'affecte en rien la valeur de f : liaison statique
12 Evaluation des applications Evaluation par valeur Evaluation de (e 1 e 2 ) dans l'environnement E Evaluation de e 1 dans E : v 1 = < fun x ->corps, E' > Evaluation de e 2 dans E : v 2 Evaluation de corps dans (x, v 2 ) :: E' Dans corps, x est remplacé par v 2 et les autres variables par leur valeur dans E' E est inchangé
13 Evaluation des applications Evaluation par valeur E = (v,100) :: (f, < fun x -> x*x*3+v, (v,2)::e 0 >) :: (v,2):: E 0 #f (2*v);; - : int = *v évalué dans E : 200 f évaluée dans E : < fun x -> x*x*3+v, (v,2)::e 0 > x*x*3+v dans (x,200) :: (v,2)::e 0 : 200*200*3+2 = 12002
14 Evaluation des applications Evaluation par valeur E = (v,100) :: (f, < fun x -> x*x*3+v, (v,2)::e 0 >) :: (v,2):: E 0 #f (2*v);; - : int = *v évalué dans E : 200 f évaluée dans E : < fun x -> x*x*3+v, (v,2)::e 0 > x*x*3+v dans (x,200) :: (v,2)::e 0 : 200*200*3+2 = 12002
15 Evaluation des applications Evaluation par nom de (e 1 e 2 ) dans l'environnement E Evaluation de e1 dans E : v 1 = < fun x ->corps, E'> Evaluation de corps dans (x, <e2, E>) :: E' Ce qui ne change pas: Les VL de corps autres que x sont évaluées dans E' Ce qui change: Les valeurs des variables sont des fermetures car elles ne sont pas évaluées immédiatement. On évalue corps avant e2 la valeur de e 2 dans l'environnement courant est calculée à chaque occurrence de x dans corps
16 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * fact(n-1);; Par analogie avec les fonctions non récursives, la valeur de fact serait la fermeture définie = < fun n -> if n=0 then 1 else n * fact(n-1), E' > Mais le corps contient une variable libre: fact, qui n'est pas dans E'. Le couple n'est pas fermé et on ne saura où trouver la valeur de fact quand on évaluera le corps lors d'une application.
17 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * = < fun n -> if n=0 then 1 else n * fact(n-1), E' > Exemple (fun n -> if n=0 then 1 else n * fact(n-1)) 2 Dans le corps, n est remplacé par 2. Mais par quoi est remplacé fact? E' ne rien là-dessus!
18 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * = < fun n -> if n=0 then 1 else n * fact(n-1), E' > Il est nécessaire de rajouter dans l'environnement de la fermeture... la liaison de la variable fact qui est : (fact,?)
19 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * = < fun n -> if n=0 then 1 else n * fact(n-1), E' > Il est nécessaire de rajouter dans l'environnement de la fermeture... la liaison de la variable fact qui est :
20 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * = < fun n -> if n=0 then 1 else n * fact(n-1), E' > Il est nécessaire de rajouter dans l'environnement de la fermeture... la liaison de la variable fact qui est : On = < fun n -> if n=0 then 1 else n * fact(n-1), >
21 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * = < fun n -> if n=0 then 1 else n * fact(n-1), E' > Il est nécessaire de rajouter dans l'environnement de la fermeture... la liaison de la variable fact qui est : On = < fun n -> if n=0 then 1 else n * fact(n-1), > Définition circulaire!
22 Evaluation des fonctions récursives Etude d'un exemple Dans l'environnement E' on définit: #let rec fact = fun n -> if n = 0 then 1 else n * fact(n-1);; On obtient donc un nouvel environnement Avec E = :: = < fun n -> corps, :: E' > = < fun n -> corps, E > en posant corps = if n = 0 then 1 else n * fact(n-1)
23 Evaluation des fonctions récursives Etude d'un = < fun n -> corps, E' > Il s'agit d'un terme infini: On peut dans la fermeture par sa valeur (on déplie) et on = < fun n -> corps, (fact, < fun n -> corps, E' >):: E' >
24 Evaluation des fonctions récursives Etude d'un = < fun n -> corps, E' = < fun n -> corps, (fact, < fun n -> corps, E' >):: E' > En redépliant, on obtient:
25 Evaluation des fonctions récursives Etude d'un = < fun n -> corps, E' = < fun n -> corps, (fact, < fun n -> corps, E' >):: E' > En redépliant, on = < fun n -> corps, (fact, < fun n -> corps, (fact, < fun n -> corps, E' >) :: E' >) :: E' >
26 Evaluation des fonctions récursives Etude d'un exemple L'idée est que ces termes circulaires sont dépliés autant de fois que nécessaire à l'évaluation d'un application, pas plus, pas moins.
27 Evaluation des fonctions récursives Evaluation de (fact 2) dans E. -> Evaluation de fact dans E: = <fun n-> if n=0 then 1 else n*fact(n-1), E> -> Evaluation de n*fact(n-1) dans E2 = (n,2)::e -> Evaluation de fact (n-1) dans E2 -> Evaluation de n-1 dans E2 -> 1 -> Evaluation de fact dans E2 - -> Evaluation de n*fact(n-1) dans E1 = (n,1)::e E1 est empile sur E2
28 Evaluation des fonctions récursives -> Evaluation de fact (n-1) dans E1 = (n,1)::e -> Evaluation de (n-1) dans E1 -> 0 -> Evaluation de fact dans E1 -> Evaluation de if n=0 then 1 else n*fact(n-1) dans E0 = (n,0)::e E0 est empile sur E1 -> 1 E0 est dépilé. On se retrouve dans E1 -> Evaluation de n -> 1 -> Evaluation de 1*1 ->1 E1 est depilé. On se retrouve dans E2 -> Evaluation de n ->2 -> Evaluation de 2*1 = 2
length : 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é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étail# let rec concat l1 l2 = match l1 with [] -> l2 x::l 1 -> x::(concat l 1 l2);; val concat : a list -> a list -> a list = <fun>
94 Programmation en OCaml 5.4.8. Concaténation de deux listes Définissons maintenant la fonction concat qui met bout à bout deux listes. Ainsi, si l1 et l2 sont deux listes quelconques, concat l1 l2 constitue
Plus en détailRappel. 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é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étailCours No 3 : Identificateurs, Fonctions, Premières Structures de contrôle.
Université Montpellier-II UFR des Sciences - Département Informatique - Licence Informatique UE GLIN302 - Programmation Applicative et Récursive Cours No 3 : Identificateurs, Fonctions, Premières Structures
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étailFonctions de deux variables. Mai 2011
Fonctions de deux variables Dédou Mai 2011 D une à deux variables Les fonctions modèlisent de l information dépendant d un paramètre. On a aussi besoin de modéliser de l information dépendant de plusieurs
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étailUne dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU
Une dérivation du paradigme de réécriture de multiensembles pour l'architecture de processeur graphique GPU Gabriel Antoine Louis Paillard Ce travail a eu le soutien de la CAPES, agence brésilienne pour
Plus en détailIN 102 - Cours 1. 1 Informatique, calculateurs. 2 Un premier programme en C
IN 102 - Cours 1 Qu on le veuille ou non, les systèmes informatisés sont désormais omniprésents. Même si ne vous destinez pas à l informatique, vous avez de très grandes chances d y être confrontés en
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étailIRL : Simulation distribuée pour les systèmes embarqués
IRL : Simulation distribuée pour les systèmes embarqués Yassine El Khadiri, 2 ème année Ensimag, Grenoble INP Matthieu Moy, Verimag Denis Becker, Verimag 19 mai 2015 1 Table des matières 1 MPI et la sérialisation
Plus en détailCours 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é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étail6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr
6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr Interface d un SGF Implémentation d un SGF Gestion de la correspondance entre la structure logique et la structure
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é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étailApplication 1- VBA : Test de comportements d'investissements
Application 1- VBA : Test de comportements d'investissements Notions mobilisées Chapitres 1 à 5 du cours - Exemple de récupération de cours en ligne 1ère approche des objets (feuilles et classeurs). Corps
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é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étailCours de Programmation Impérative: Zones de mémoires et pointeurs
Cours de Programmation Impérative: Zones de mémoires et pointeurs Julien David A101 - david@lipn.univ-paris13.fr Julien David (A101 - david@lipn.univ-paris13.fr) 1 / 1 Z`o n`e s `d`e m`é m`o i r`e Julien
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é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é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étailMerise. Introduction
Merise Introduction MERISE:= Méthode d Etude et de Réalisation Informatique pour les Systèmes d Entreprise Méthode d Analyse et de Conception : Analyse: Etude du problème Etudier le système existant Comprendre
Plus en détailPremiers 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étailProgrammation avec des objets : Cours 7. Menu du jour
1 Programmation avec des objets : Cours 7 Menu du jour 1. Retour sur la classe Liste 2. Précisions sur l interface 3. Difficultés dans le cas d erreurs 4. Soulever des exceptions 5. Utilisation des Listes
Plus en détail1. 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étailLicence 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étailLambda-calcul et langages fonctionnels
Lambda-calcul et langages fonctionnels Jean Goubault-Larrecq Abstract Ceci est la version 4 de la première partie du cours de lambda-calcul, datant du 02 juin 2014. La version 3 datait du 28 janvier 2011
Plus en détailExamen d informatique première session 2004
Examen d informatique première session 2004 Le chiffre à côté du titre de la question indique le nombre de points sur 40. I) Lentille électrostatique à fente (14) Le problème étudié est à deux dimensions.
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étailTRIGONOMETRIE Algorithme : mesure principale
TRIGONOMETRIE Algorithme : mesure principale Déterminer la mesure principale d un angle orienté de mesure! 115" Problèmatique : Appelons θ la mesure principale, θ et! 115" sont deux mesures du même angle,
Plus en détailCentre CPGE TSI - Safi 2010/2011. Algorithmique et programmation :
Algorithmique et programmation : STRUCTURES DE DONNÉES A. Structure et enregistrement 1) Définition et rôle des structures de données en programmation 1.1) Définition : En informatique, une structure de
Plus en détailMaster IMA - UMPC Paris 6 RDMM - Année 2009-2010 Fiche de TP
Master IMA - UMPC Paris 6 RDMM - Année 2009-200 Fiche de TP Préliminaires. Récupérez l archive du logiciel de TP à partir du lien suivant : http://www.ensta.fr/~manzaner/cours/ima/tp2009.tar 2. Développez
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é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é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étailhttp://cermics.enpc.fr/scilab
scilab à l École des Ponts ParisTech http://cermics.enpc.fr/scilab Introduction à Scilab Graphiques, fonctions Scilab, programmation, saisie de données Jean-Philippe Chancelier & Michel De Lara cermics,
Plus en détailEPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE
EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE QCM Remarque : - A une question correspond au moins 1 réponse juste - Cocher la ou les bonnes réponses Barème : - Une bonne réponse = +1 - Pas de réponse = 0
Plus en détailIntroduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr
Introduction à la programmation orientée objet, illustrée par le langage C++ Patrick Cégielski cegielski@u-pec.fr Mars 2002 Pour Irène et Marie Legal Notice Copyright c 2002 Patrick Cégielski Université
Plus en détail1.6- Génération de nombres aléatoires
1.6- Génération de nombres aléatoires 1- Le générateur aléatoire disponible en C++ 2 Création d'un générateur aléatoire uniforme sur un intervalle 3- Génération de valeurs aléatoires selon une loi normale
Plus en détailCorrigé des TD 1 à 5
Corrigé des TD 1 à 5 1 Premier Contact 1.1 Somme des n premiers entiers 1 (* Somme des n premiers entiers *) 2 program somme_entiers; n, i, somme: integer; 8 (* saisie du nombre n *) write( Saisissez un
Plus en détailJava Licence Professionnelle CISII, 2009-10
Java Licence Professionnelle CISII, 2009-10 Cours 4 : Programmation structurée (c) http://www.loria.fr/~tabbone/cours.html 1 Principe - Les méthodes sont structurées en blocs par les structures de la programmation
Plus en détailTP3 : Manipulation et implantation de systèmes de fichiers 1
École Normale Supérieure Systèmes et réseaux Année 2012-2013 TP3 : Manipulation et implantation de systèmes de fichiers 1 1 Répertoire de travail courant Le but de l exercice est d écrire une commande
Plus en détailNotes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables
Notes du cours MTH1101 Calcul I Partie II: fonctions de plusieurs variables Guy Desaulniers Département de mathématiques et de génie industriel École Polytechnique de Montréal Automne 2014 Table des matières
Plus en détailExamen Médian - 1 heure 30
NF01 - Automne 2014 Examen Médian - 1 heure 30 Polycopié papier autorisé, autres documents interdits Calculatrices, téléphones, traducteurs et ordinateurs interdits! Utilisez trois copies séparées, une
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étailLes processus légers : threads. Système L3, 2014-2015 1/31
Les processus légers : threads Système L3, 2014-2015 1/31 Les threads Les threads sont des processus légers exécutés à l intérieur d un processus L exécution des threads est concurrente Il existe toujours
Plus en détailLogiciel de base. Première année ENSIMAG
Logiciel de base Première année ENSIMAG 1 Procédures, paramètres, pile En assembleur une fonction est une étiquette, c'est l'adresse de sa première instruction Lors de l'appel d'une fonction, la pile sert
Plus en détailProgrammation en Caml pour Débutants
Programmation en Caml pour Débutants Arthur Charguéraud 6 Ju 2005 Ceci est une version léaire imprimable du cours, mais il est fortement conseillé d utiliser la version teractive, sur laquelle la plupart
Plus en détailPlan du cours : Zippers. Des fonctions sur les listes avec position. Des fonctions sur les listes avec position
Plan du cours : Le problème : naviguer efficacement une structure de données Ce qui ne marche pas Ce qui marche : les de Huet Exemples Comment dériver des pour tout type de données Pour en savoir plus
Plus en détailJava 1.5 : principales nouveautés
Cours 6 - TEP - UPMC - 2008/2009 p. 1/34 Java 1.5 : principales nouveautés classes paramétrées : generics encapsulation des valeurs de types primitifs : auto[un]boxing itération sur les boucles types énumérés
Plus en détailLe Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr
Le Langage C Version 1.2 c 2002 Florence HENRY Observatoire de Paris Université de Versailles florence.henry@obspm.fr Table des matières 1 Les bases 3 2 Variables et constantes 5 3 Quelques fonctions indispensables
Plus en détailModule Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS
Module Administration BD Chapitre 1 : Surcouche procédurale dans les SGBDS 1. Introduction Nous allons aborder la notion de surcouche procédurale au sein des SGBDS relationnels tels que Oracle (PLSQL)
Plus en détailReconstruction de bâtiments en 3D à partir de nuages de points LIDAR
Reconstruction de bâtiments en 3D à partir de nuages de points LIDAR Mickaël Bergem 25 juin 2014 Maillages et applications 1 Table des matières Introduction 3 1 La modélisation numérique de milieux urbains
Plus en détailI. Introduction aux fonctions : les fonctions standards
Chapitre 3 : Les fonctions en C++ I. Introduction aux fonctions : les fonctions standards A. Notion de Fonction Imaginons que dans un programme, vous ayez besoin de calculer une racine carrée. Rappelons
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étailLes processus 2/54. Qu est-ce qu un processus? 3(6)/54. Se souvenir 1(1)/54. Le système de fichiers (exemple du disque dur)
Se souvenir 1(1)/54 Le système de fichiers (exemple du disque dur) Qu est-ce qu un processus? 3(3)/54 Les caches (inodes et blocks) Accès à un fichier : double indirection Compteurs de références : Les
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é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étailRappels Entrées -Sorties
Fonctions printf et scanf Syntaxe: écriture, organisation Comportement Données hétérogènes? Gestion des erreurs des utilisateurs 17/11/2013 Cours du Langage C ibr_guelzim@yahoo.fr ibrahimguelzim.atspace.co.uk
Plus en détailPackage 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étailOrganigramme / Algorigramme Dossier élève 1 SI
Organigramme / Algorigramme Dossier élève 1 SI CI 10, I11 ; CI 11, I10 C24 Algorithmique 8 février 2009 (13:47) 1. Introduction Un organigramme (ou algorigramme, lorsqu il est plus particulièrement appliqué
Plus en détailAlgorithmique, Structures de données et langage C
UNIVERSITE PAUL SABATIER TOULOUSE III Algorithmique, Structures de données et langage C L3 IUP AISEM/ICM Janvier 2005 J.M. ENJALBERT Chapitre 1 Rappels et compléments de C 1.1 Structures Une structure
Plus en détailChapitre 5 : Flot maximal dans un graphe
Graphes et RO TELECOM Nancy A Chapitre 5 : Flot maximal dans un graphe J.-F. Scheid 1 Plan du chapitre I. Définitions 1 Graphe Graphe valué 3 Représentation d un graphe (matrice d incidence, matrice d
Plus en détailTP, 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é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étailConventions d écriture et outils de mise au point
Logiciel de base Première année par alternance Responsable : Christophe Rippert Christophe.Rippert@Grenoble-INP.fr Introduction Conventions d écriture et outils de mise au point On va utiliser dans cette
Plus en détailInitiation à 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étailLes algorithmes de base du graphisme
Les algorithmes de base du graphisme Table des matières 1 Traçage 2 1.1 Segments de droites......................... 2 1.1.1 Algorithmes simples.................... 3 1.1.2 Algorithmes de Bresenham (1965).............
Plus en détailRappel sur les bases de données
Rappel sur les bases de données 1) Généralités 1.1 Base de données et système de gestion de base de donnés: définitions Une base de données est un ensemble de données stockées de manière structurée permettant
Plus en détailQuatrième partie IV. Test. Test 15 février 2008 1 / 71
Quatrième partie IV Test Test 15 février 2008 1 / 71 Outline Introduction 1 Introduction 2 Analyse statique 3 Test dynamique Test fonctionnel et structurel Test structurel Test fonctionnel 4 Conclusion
Plus en détail(Exemple ici de calcul pour une Ducati 748 biposto, et également pour un S2R1000, équipé d un disque acier en fond de cloche, et ressorts d origine)
Analyse de la charge transmise aux roulements de la roue dentée, notamment en rajoutant les efforts axiaux dus aux ressorts de l embrayage (via la cloche) (Exemple ici de calcul pour une Ducati 748 biposto,
Plus en détailQualité du logiciel: Méthodes de test
Qualité du logiciel: Méthodes de test Matthieu Amiguet 2004 2005 Analyse statique de code Analyse statique de code Étudier le programme source sans exécution Généralement réalisée avant les tests d exécution
Plus en détailExclusion 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étailBrefs rappels sur la pile et le tas (Stack. / Heap) et les pointeurs
Brefs rappels sur la pile et le tas (Stack / Heap) et les pointeurs (exemples en C) v1.11 - Olivier Carles 1 Pile et Tas Mémoire allouée de manière statique Mémoire Allouée Dynamiquement variables locales
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étailProgrammation en Java IUT GEII (MC-II1) 1
Programmation en Java IUT GEII (MC-II1) 1 Christophe BLANC - Paul CHECCHIN IUT Montluçon Université Blaise Pascal Novembre 2009 Christophe BLANC - Paul CHECCHIN Programmation en Java IUT GEII (MC-II1)
Plus en détailDirection de la sécurité sociale. Personne chargée du dossier : Huguette Hatil. La ministre des solidarités et de la cohésion sociale
MINISTERE DU TRAVAIL, DE L EMPLOI ET DE LA SANTE MINISTERE DU BUDGET, DES COMPTES PUBLICS ET DE LA REFORME DE L ETAT MINISTERE DES SOLIDARITES ET DE LA COHESION SOCIALE Direction de la sécurité sociale
Plus en détailThèmes et situations : Personnel et législation sociale dans l entreprise. Fiche pédagogique
Ressources pour les enseignants et les formateurs en français des affaires Activité pour la classe : DFA1 Crédit : Joelle Bonenfant, Jean Lacroix Thèmes et situations : Personnel et législation sociale
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étailPlan. 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étailSéquence 3. Expressions algébriques Équations et inéquations. Sommaire
Séquence 3 Expressions algébriques Équations et inéquations Sommaire 1. Prérequis. Expressions algébriques 3. Équations : résolution graphique et algébrique 4. Inéquations : résolution graphique et algébrique
Plus en détailArrêtons. «Article 11
Projet de règlement grand-ducal modifiant le règlement grand-ducal modifié du 11 novembre 2003 pris en exécution de la loi du 16 avril 2003 relative à l'assurance obligatoire de la responsabilité civile
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étail#include <stdio.h> #include <stdlib.h> struct cell { int clef; struct cell *suiv; };
#include #include struct cell int clef; struct cell suiv; ; / longueur. pc->suiv est l abréviation de (pc).suiv. pour cette fonction comme pour les suivantes, on donne, lorsqu il existe
Plus en détailCours de C. Petits secrets du C & programmation avancée. Sébastien Paumier
Cours de C Petits secrets du C & programmation avancée Sébastien Paumier paumier@univ-mlv.fr Illustrations provenant du site http://tux.crystalxp.net/ 1 Affectations étendues a+=expression a=a+expression
Plus en détailLicence Bio Informatique Année 2004-2005. Premiers pas. Exercice 1 Hello World parce qu il faut bien commencer par quelque chose...
Université Paris 7 Programmation Objet Licence Bio Informatique Année 2004-2005 TD n 1 - Correction Premiers pas Exercice 1 Hello World parce qu il faut bien commencer par quelque chose... 1. Enregistrez
Plus en détailDUT Techniques de commercialisation Mathématiques et statistiques appliquées
DUT Techniques de commercialisation Mathématiques et statistiques appliquées Francois.Kauffmann@unicaen.fr Université de Caen Basse-Normandie 3 novembre 2014 Francois.Kauffmann@unicaen.fr UCBN MathStat
Plus en détailTable des matières. Introduction
Table des matières 1 Formalisation des virus informatiques 2 1.1 Les machines de Turing........................ 2 1.2 Formalisation de Fred Cohen..................... 2 1.2.1 Définition d un virus informatique..............
Plus en détailHistorisation des données
Historisation des données Partie 1 : mode colonne par Frédéric Brouard, alias SQLpro MVP SQL Server Expert langage SQL, SGBDR, modélisation de données Auteur de : SQLpro http://sqlpro.developpez.com/ "SQL",
Plus en détailIntroduction à R. Florence Yerly. Dept. de mathématiques, Université de Fribourg (CH) SP 2011
Dept. de mathématiques, Université de Fribourg (CH) SP 2011 Qu est ce que R? Un logiciel de statistiques libre et gratuit ; Un logiciel multi-plateforme (UNIX, Windows MacOS X) R permet de faire des calculs
Plus en détailLe langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie
Chapitre I : Les bases du C++ Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie du logiciel, et ce depuis
Plus en détailSolutions 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étailIntroduction au langage C
Introduction au langage C Cours 1: Opérations de base et premier programme Alexis Lechervy Alexis Lechervy (UNICAEN) Introduction au langage C 1 / 23 Les premiers pas Sommaire 1 Les premiers pas 2 Les
Plus en détailAlgorithmique & programmation
Algorithmique & programmation Type structuré Article, Enregistrement, Structure Définition de nouveaux types!! On a vu les types simples "! entier, booléen, caractère, chaîne de caractères!! Comment gérer
Plus en détailClaude Delannoy. 3 e édition C++
Claude Delannoy 3 e édition Exercices Exercices C++ en en langage langage delc++ titre 4/07/07 15:19 Page 2 Exercices en langage C++ AUX EDITIONS EYROLLES Du même auteur C. Delannoy. Apprendre le C++.
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étail