Environnement de développement
|
|
- Marie-Christine Sergerie
- il y a 8 ans
- Total affichages :
Transcription
1 Environnement de développement Bernard Vauquelin Université Bordeaux 1 4 février 2010
2 Introduction Plan général Compilation Mise au point Édition Documentation Gestion de versions Outils divers
3 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
4 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
5 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
6 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
7 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
8 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
9 Objectifs pédagogiques Le but de cet enseignement est de présenter les fonctionnalités utiles au développement d applications. 1. compilation 2. édition du texte du programme 3. aide à la mise au point 4. édition de la documentation 5. gestion collaborative des versions Pour illustrer chacune de ces fonctionnalités on étudiera un outil de base : gcc, make, emacs, gdb, LATEX, svn.
10 Hiérarchie Unix /bin exécutables indispensables au démarrage /etc configuration du système /home les répertoires d accueil /lib bibliothèques indispensables au démarrage /tmp fichiers temporaires /usr applications normales /opt grosses applications optionnelles /var fichiers du système dont le contenu varie
11 Hiérarchie Unix /bin exécutables indispensables au démarrage /etc configuration du système /home les répertoires d accueil /lib bibliothèques indispensables au démarrage /tmp fichiers temporaires /usr applications normales /opt grosses applications optionnelles /var fichiers du système dont le contenu varie
12 Hiérarchie Unix (suite) /usr/bin exécutables normaux /usr/include fichiers d en-tête pour la compilation /usr/lib bibliothèques d exécution /usr/local applications locales /usr/share fichiers du système indépendants du processeur /usr/src sources d applications normales /usr/share/man le manuel /usr/local/ contient bin, include, lib, src, man,...
13 Hiérarchie Unix (suite) /usr/bin exécutables normaux /usr/include fichiers d en-tête pour la compilation /usr/lib bibliothèques d exécution /usr/local applications locales /usr/share fichiers du système indépendants du processeur /usr/src sources d applications normales /usr/share/man le manuel /usr/local/ contient bin, include, lib, src, man,...
14 Hiérarchie Unix (suite) /usr/bin exécutables normaux /usr/include fichiers d en-tête pour la compilation /usr/lib bibliothèques d exécution /usr/local applications locales /usr/share fichiers du système indépendants du processeur /usr/src sources d applications normales /usr/share/man le manuel /usr/local/ contient bin, include, lib, src, man,...
15 Conventions Pour une application simple prog on place les sources dans un répertoire src/prog. Ce répertoire contient les sources du programme (fichiers.c et.h par exemple) les sources de la documentation (fichiers.xml par exemple) un fichier README un fichier Makefile ou équivalent L installation (obtenue en principe par la commande : make install) doit placer l exécutable dans un répertoire bin (par exemple en /usr/local/bin/prog) le manuel d utilisation dans un répertoire man (p.ex. en /usr/local/man/man1/prog.1)
16 Conventions Pour une application simple prog on place les sources dans un répertoire src/prog. Ce répertoire contient les sources du programme (fichiers.c et.h par exemple) les sources de la documentation (fichiers.xml par exemple) un fichier README un fichier Makefile ou équivalent L installation (obtenue en principe par la commande : make install) doit placer l exécutable dans un répertoire bin (par exemple en /usr/local/bin/prog) le manuel d utilisation dans un répertoire man (p.ex. en /usr/local/man/man1/prog.1)
17 Conventions Pour une application simple prog on place les sources dans un répertoire src/prog. Ce répertoire contient les sources du programme (fichiers.c et.h par exemple) les sources de la documentation (fichiers.xml par exemple) un fichier README un fichier Makefile ou équivalent L installation (obtenue en principe par la commande : make install) doit placer l exécutable dans un répertoire bin (par exemple en /usr/local/bin/prog) le manuel d utilisation dans un répertoire man (p.ex. en /usr/local/man/man1/prog.1)
18 Introduction Plan de la section Compilation gcc make make (suite) Mise au point Édition Documentation Gestion de versions
19 Une compilation simple Soit le fichier bonjour.c suivant. #i n c l u de <s t d i o. h> i n t main ( void ) { p r i n t f ( Bonjour a t o u s \n ) ; return 0 ; } Alors la commande gcc bonjour.c produit un fichier a.out suivant le schéma suivant.
20 gcc lit le fichier source bonjour.c et construit le fichier exécutable a.out
21 Les phases de compilation Les 3 phases essentielles sont : 1. le préprocesseur cpp 2. la compilation à proprement parlé cc + as 3. l édition de lien ld ar est une application extérieure à gcc qui permet d archiver plusieurs objets (fichiers suffixés.o) en une bibliothèque (fichier suffixé.a).
22 Les phases de compilation Les 3 phases essentielles sont : 1. le préprocesseur cpp 2. la compilation à proprement parlé cc + as 3. l édition de lien ld ar est une application extérieure à gcc qui permet d archiver plusieurs objets (fichiers suffixés.o) en une bibliothèque (fichier suffixé.a).
23 Les phases de compilation Les 3 phases essentielles sont : 1. le préprocesseur cpp 2. la compilation à proprement parlé cc + as 3. l édition de lien ld ar est une application extérieure à gcc qui permet d archiver plusieurs objets (fichiers suffixés.o) en une bibliothèque (fichier suffixé.a).
24 Options de gcc Pour arrêter le compilateur à une certaine phase -E : s arrête à la première phase (génère des.i) -S : s arrête avant l assembleur (génère des.s) -c : s arrête à la fin de la second phase (génère des.o) Pour reprendre le travail depuis une certaine phase gcc accepte plusieurs fichiers d entrée sur la ligne de commande et, pour chacun d eux, en fonction du suffixe, leur applique uniquement les phases nécessaires. La dernière phase (l édition de liens) n est exécutée qu une fois, globalement, après avoir effectué toutes les phases précédentes nécessaires sur tous les fichiers.
25 Options de gcc Pour arrêter le compilateur à une certaine phase -E : s arrête à la première phase (génère des.i) -S : s arrête avant l assembleur (génère des.s) -c : s arrête à la fin de la second phase (génère des.o) Pour reprendre le travail depuis une certaine phase gcc accepte plusieurs fichiers d entrée sur la ligne de commande et, pour chacun d eux, en fonction du suffixe, leur applique uniquement les phases nécessaires. La dernière phase (l édition de liens) n est exécutée qu une fois, globalement, après avoir effectué toutes les phases précédentes nécessaires sur tous les fichiers.
26 Autres options Pour augmenter le contexte de la compilation -Irep : ajoute rep à la liste des répertoires consultés par le préprocesseur pour trouver les fichiers cités dans les commandes de la forme #include <...> -lxxx : invite l éditeur de liens à considérer la bibliothèque libxxx.a pour y rechercher la définition d identificateur utilisé et pas défini (la bibliothèque libc.a est toujours considérée ; les bibliothèques sont considérées dans l ordre d apparition sur la ligne de commande) -Lrep : ajoute rep à la liste des répertoires consultés par l éditeur de liens pour trouver les bibliothèques à considérer
27 Options diverses -std=c99 : spécifie le standard que le code source satisfait -o fichier : génère l exécutable dans fichier au lieu de a.out -g : place dans l exécutable des informations utiles au debugger -O2 : provoque une certaine optimisation du code généré -Wall : affiche un message pour toute forme un peu ambiguë relevée dans le programme par le compilateur
28 Un cas simple Pour développer un éditeur de texte en C on découpe le programme en plusieurs fichiers sources : kbd.c, display.c, files.c, command.c, main.c. Par ailleurs les définitions générales sont répartis sur 2 fichiers : defs.h et command.h. On décrit alors la compilation de l application par le fichier Makefile suivant.
29 Un cas simple Pour développer un éditeur de texte en C on découpe le programme en plusieurs fichiers sources : kbd.c, display.c, files.c, command.c, main.c. Par ailleurs les définitions générales sont répartis sur 2 fichiers : defs.h et command.h. On décrit alors la compilation de l application par le fichier Makefile suivant.
30 e d i t : main. o kbd. o command. o d i s p l a y. o f i l e s. o cc o e d i t main. o kbd. o command. o \ d i s p l a y. o f i l e s. o main. o : main. c d e f s. h cc c main. c kbd. o : kbd. c d e f s. h command. h cc c kbd. c command. o : command. c d e f s. h command. h cc c command. c d i s p l a y. o : d i s p l a y. c d e f s. h cc c d i s p l a y. c f i l e s. o : f i l e s. c d e f s. h command. h cc c f i l e s. c c l e a n : rm e d i t main. o kbd. o command. o \
31 Il suffit de faire make pour compiler et obtenir l exécutable edit. Il suffira ensuite de refaire make chaque fois qu on aura modifié certains fichiers sources, pour recompiler edit. Le fichier, qui se nomme normalement Makefile, est constitué de règles de la forme suivante. c i b l e c i b l e... : dependance dependance... commande commande... make interprète ces règles de la facon suivante. Pour chaque fichier cible, s il n existe pas, ou si sa date de dernière modification est plus ancienne que la date de dernière modification d un des fichiers dependance, alors il doit être construit, ou reconstruit, en exécutant successivement les commandes indiquées. Remarque : La cible clean est particulière : aucun fichier de ce nom n est jamais censé exister.
32 Il suffit de faire make pour compiler et obtenir l exécutable edit. Il suffira ensuite de refaire make chaque fois qu on aura modifié certains fichiers sources, pour recompiler edit. Le fichier, qui se nomme normalement Makefile, est constitué de règles de la forme suivante. c i b l e c i b l e... : dependance dependance... commande commande... make interprète ces règles de la facon suivante. Pour chaque fichier cible, s il n existe pas, ou si sa date de dernière modification est plus ancienne que la date de dernière modification d un des fichiers dependance, alors il doit être construit, ou reconstruit, en exécutant successivement les commandes indiquées. Remarque : La cible clean est particulière : aucun fichier de ce nom n est jamais censé exister.
33 Il suffit de faire make pour compiler et obtenir l exécutable edit. Il suffira ensuite de refaire make chaque fois qu on aura modifié certains fichiers sources, pour recompiler edit. Le fichier, qui se nomme normalement Makefile, est constitué de règles de la forme suivante. c i b l e c i b l e... : dependance dependance... commande commande... make interprète ces règles de la facon suivante. Pour chaque fichier cible, s il n existe pas, ou si sa date de dernière modification est plus ancienne que la date de dernière modification d un des fichiers dependance, alors il doit être construit, ou reconstruit, en exécutant successivement les commandes indiquées. Remarque : La cible clean est particulière : aucun fichier de ce nom n est jamais censé exister.
34 Il suffit de faire make pour compiler et obtenir l exécutable edit. Il suffira ensuite de refaire make chaque fois qu on aura modifié certains fichiers sources, pour recompiler edit. Le fichier, qui se nomme normalement Makefile, est constitué de règles de la forme suivante. c i b l e c i b l e... : dependance dependance... commande commande... make interprète ces règles de la facon suivante. Pour chaque fichier cible, s il n existe pas, ou si sa date de dernière modification est plus ancienne que la date de dernière modification d un des fichiers dependance, alors il doit être construit, ou reconstruit, en exécutant successivement les commandes indiquées. Remarque : La cible clean est particulière : aucun fichier de ce nom n est jamais censé exister.
35 Utiliser des variables OBJECTS = main. o kbd. o command. o d i s p l a y. o f i l e s. o e d i t : $ (OBJECTS) cc o e d i t $ (OBJECTS) main. o : main. c d e f s. h cc c main. c kbd. o : kbd. c d e f s. h command. h cc c kbd. c command. o : command. c d e f s. h command. h cc c command. c d i s p l a y. o : d i s p l a y. c d e f s. h cc c d i s p l a y. c f i l e s. o : f i l e s. c d e f s. h command. h cc c f i l e s. c c l e a n : rm f e d i t $ (OBJECTS)
36 Utiliser les règles implicites OBJECTS = main. o kbd. o command. o d i s p l a y. o f i l e s. o e d i t : $ (OBJECTS) cc o e d i t $ (OBJECTS) main. o : d e f s. h kbd. o : d e f s. h command. h command. o : d e f s. h command. h d i s p l a y. o : d e f s. h f i l e s. o : d e f s. h command. h.phony : c l e a n c l e a n : rm f e d i t $ (OBJECTS) La cible bidon.phony indique à make d ignorer l existence
37 Utiliser des cibles multiples OBJECTS = main. o kbd. o command. o d i s p l a y. o f i l e s. o e d i t : $ (OBJECTS) cc o e d i t $ (OBJECTS) $ (OBJECTS) : d e f s. h kbd. o command. o f i l e s. o : command. h.phony : c l e a n c l e a n : rm e d i t $ (OBJECTS)
38 Quelques options de make -f fichier : consulte fichier plutôt que Makefile -n : affiche, sans les exécuter, les commandes nécessaires -k : ignore les erreurs qui pourraient survenir dans l exécution des commandes cible : construit la cible indiquée plutôt que la première cible trouvée
39 Un autre exemple très simple # Pour c o n s t r u i r e un c o u p l e de programmes.phony : a l l c l e a n a l l : C e l s i u s 2 K e l v i n K e l v i n 2 C e l s i u s C e l s i u s 2 K e l v i n : C e l s i u s 2 K e l v i n. c p a r a m e t r e s. h gcc C e l s i u s 2 K e l v i n. c o C e l s i u s 2 K e l v i n K e l v i n 2 C e l s i u s : K e l v i n 2 C e l s i u s. c p a r a m e t r e s. h gcc K e l v i n 2 C e l s i u s. c o K e l v i n 2 C e l s i u s c l e a n C e l s i u s 2 K e l v i n K e l v i n 2 C e l s i u s Le # introduit un commentaire sur le reste de la ligne, le - devant une commande autorise make à continuer même si la commande échoue et, devant une commande empêche make de nous l afficher chaque fois qu il l exécute.
40 Compilation d un document Pour imprimer un document en L A TEX, il faut le compiler puis convertir le résultat de la compilation en PostScript, langage de l imprimante : Compte Rendu. ps : Compte Rendu. d v i d v i p s o Compte Rendu. ps Compte Rendu. d v i rm Compte Rendu. d v i Compte Rendu. d v i : Compte Rendu. t e x l a t e x Compte Rendu. t e x.phony : p r i n t p r i n t : Compte Rendu. ps l p r P c o p i e u s e Compte Rendu. ps rm Compte Rendu. p s
41 Il y a un peu trop de duplication! Heureusement, il existe des variables automatiques comme $@ (la cible courante) et $< (la première dépendance) : Compte Rendu. ps : Compte Rendu. d v i d v i p s o $@ $< rm $< Compte Rendu. d v i : Compte Rendu. t e x l a t e x $<.PHONY : p r i n t p r i n t : Compte Rendu. ps l p r P c o p i e u s e $< rm $<
42 Pour être plus général on peut définir de nouvelles règles implicites (comme celle, par exemple, qui permet de construire un fichier.o à partir d un fichier.c). %. ps : %. d v i d v i p s o $@ $< rm $< %. d v i : %. t e x l a t e x $< p r i n t % : %. ps l p r P c o p i e u s e $< Attention : Ce Makefile ne contient aucune cible. On en indiquera donc une sur la ligne de commande ; par exemple : make Compte Rendu.ps.
43 Retour sur le premier exemple OBJECTS = main. o kbd. o command. o d i s p l a y. o f i l e s. o e d i t : $ (OBJECTS) cc o e d i t $ (OBJECTS) main. o : d e f s. h kbd. o : d e f s. h command. h command. o : d e f s. h command. h d i s p l a y. o : d e f s. h f i l e s. o : d e f s. h command. h.phony : c l e a n c l e a n : rm f e d i t $ (OBJECTS) Des variables particulières servent de paramètres : le nom du
44 Retour sur le premier exemple OBJECTS = main. o kbd. o command. o d i s p l a y. o f i l e s. o e d i t : $ (OBJECTS) cc o e d i t $ (OBJECTS) main. o : d e f s. h kbd. o : d e f s. h command. h command. o : d e f s. h command. h d i s p l a y. o : d e f s. h f i l e s. o : d e f s. h command. h.phony : c l e a n c l e a n : rm f e d i t $ (OBJECTS) Des variables particulières servent de paramètres : le nom du
45 OBJECTS = main. o kbd. o command. o d i s p l a y. o f i l e s. o CC = gcc CFLAGS = g s t d=c99 Wall e d i t : $ (OBJECTS) $ (CC) o e d i t $ (OBJECTS) main. o : d e f s. h kbd. o : d e f s. h command. h command. o : d e f s. h command. h d i s p l a y. o : d e f s. h f i l e s. o : d e f s. h command. h.phony : c l e a n c l e a n : rm f e d i t $ (OBJECTS)
46 Évolutivité Au cours de l évolution du développement, il sera nécessaire de tenir à jour 1. la variable OBJECTS 2. les dépendances des fichiers.h Utilisation de fonctions de make comme shell, wildcard, subst : $(wildcard *.c) Utilisation de l option -MM du compilateur : gcc -MM *.c >Makedeps
47 Évolutivité Au cours de l évolution du développement, il sera nécessaire de tenir à jour 1. la variable OBJECTS 2. les dépendances des fichiers.h Utilisation de fonctions de make comme shell, wildcard, subst : $(wildcard *.c) Utilisation de l option -MM du compilateur : gcc -MM *.c >Makedeps
48 Évolutivité Au cours de l évolution du développement, il sera nécessaire de tenir à jour 1. la variable OBJECTS 2. les dépendances des fichiers.h Utilisation de fonctions de make comme shell, wildcard, subst : $(wildcard *.c) Utilisation de l option -MM du compilateur : gcc -MM *.c >Makedeps
49 # F a i r e make depend avant make SOURCES = $ ( wildcard. c ) OBJECTS = $ (SOURCES :. c =.o ) CC = gcc CFLAGS = g s t d=c99 Wall e d i t : $ (OBJECTS) $ (CC) o e d i t $ (OBJECTS) i n c l ude Makedeps.PHONY : c l e a n depend c l e a n : rm f e d i t $ (OBJECTS) depend : $ (CC) MM $ (SOURCES) >Makedeps
50 # A j u s t e r l e s 2 v a r i a b l e s s u i v a n t e s # F a i r e make depend p u i s make # P a s s e r r o o t pour f a i r e make i n s t a l l TARGET = e d i t BINDIR = / u s r / l o c a l / b i n # Ce q u i s u i t ne d e v r a i t pas e t r e m o d i f i e SOURCES = $ ( wildcard. c ) OBJECTS = $ (SOURCES :. c =.o ) CC = gcc CFLAGS = g s t d=c99 Wall $ (TARGET) : $ (OBJECTS) $ (CC) o $ (TARGET) $ ( OBJECTS) i n c l ude Makedeps
51 # A j u s t e r l e s 2 v a r i a b l e s s u i v a n t e s # F a i r e make depend p u i s make # P a s s e r r o o t pour f a i r e make i n s t a l l TARGET = e d i t BINDIR = / u s r / l o c a l / b i n # Ce q u i s u i t ne d e v r a i t pas e t r e m o d i f i e SOURCES = $ ( wildcard. c ) OBJECTS = $ (SOURCES :. c =.o ) CC = gcc CFLAGS = g s t d=c99 Wall $ (TARGET) : $ (OBJECTS) $ (CC) o $ (TARGET) $ ( OBJECTS) i n c l ude Makedeps
52 ... i n c l ude Makedeps.PHONY : c l e a n depend i n s t a l l c l e a n : rm f $ (TARGET) $ ( OBJECTS) Makedeps depend : $ (CC) MM $ (SOURCES) >Makedeps i n s t a l l : $ (TARGET) cp $ (TARGET) $ ( BINDIR )
53 Introduction Plan de la section Compilation Mise au point gdb valgrind Édition Documentation Gestion de versions
54 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
55 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
56 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
57 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
58 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
59 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
60 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
61 Commandes d état général h[elp] com : i[nfo] info : sho[w] param : set param valeur : file prog : (idem gdb prog) core core : (idem gdb prog core) attach pid : (idem gdb prog pid) dir rep : répertoire des sources
62 Conditions d arrêt b[reak] [fich :] fct/lig [if cond] wa[tch] exp : arrêt sur changement de valeur : point d arrêt dans le code dis/en[able] [num] : (dés)activation d un point d arrêt (tous p. déf.) d[elete] exp : suppression définitive
63 Conditions d arrêt b[reak] [fich :] fct/lig [if cond] wa[tch] exp : arrêt sur changement de valeur : point d arrêt dans le code dis/en[able] [num] : (dés)activation d un point d arrêt (tous p. déf.) d[elete] exp : suppression définitive
64 Conditions d arrêt b[reak] [fich :] fct/lig [if cond] wa[tch] exp : arrêt sur changement de valeur : point d arrêt dans le code dis/en[able] [num] : (dés)activation d un point d arrêt (tous p. déf.) d[elete] exp : suppression définitive
65 Conditions d arrêt b[reak] [fich :] fct/lig [if cond] wa[tch] exp : arrêt sur changement de valeur : point d arrêt dans le code dis/en[able] [num] : (dés)activation d un point d arrêt (tous p. déf.) d[elete] exp : suppression définitive
66 Exécution r[un] [args] [redir] : n[ext] [nbre] : on exécute totalement les fonctions s[tep] [nbre] : on rentre dans les fonctions c[ontinue] : on continue jusqu à une condition d arrêt fin[ish] : on termine la fonction courante
67 Exécution r[un] [args] [redir] : n[ext] [nbre] : on exécute totalement les fonctions s[tep] [nbre] : on rentre dans les fonctions c[ontinue] : on continue jusqu à une condition d arrêt fin[ish] : on termine la fonction courante
68 Exécution r[un] [args] [redir] : n[ext] [nbre] : on exécute totalement les fonctions s[tep] [nbre] : on rentre dans les fonctions c[ontinue] : on continue jusqu à une condition d arrêt fin[ish] : on termine la fonction courante
69 Exécution r[un] [args] [redir] : n[ext] [nbre] : on exécute totalement les fonctions s[tep] [nbre] : on rentre dans les fonctions c[ontinue] : on continue jusqu à une condition d arrêt fin[ish] : on termine la fonction courante
70 Exécution r[un] [args] [redir] : n[ext] [nbre] : on exécute totalement les fonctions s[tep] [nbre] : on rentre dans les fonctions c[ontinue] : on continue jusqu à une condition d arrêt fin[ish] : on termine la fonction courante
71 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
72 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
73 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
74 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
75 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
76 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
77 Affichages l[ist] [fich :] [fct/lig] : p. def. autour du point d arrêt p[rint] [/format] expr : cal[l] expr : idem print mais sans affichage disp[lay] [/format] expr : affichage automatique à chaque arrêt b[ack]t[race] : liste les cadres de chaque fonction en cours dans la pile d exécution f[rame] num : change de cadre up/do[wn] [nbre] : change de cadre
78 Fonctions
79 Introduction Plan de la section Compilation Mise au point Édition Emacs Emacs-Lisp Elisp (suite) Documentation Gestion de versions
80 Éléments d Emacs Fichier, tampon ( buffer ), fenêtre, cadre ( frame ) Ligne, colonne, point, marque, région Clé, touche, commande, table de liaison ( binding ) Modes (majeurs et mineurs) Fonctions (interactives ou pas), variables (locales ou globales)
81 Éléments d Emacs Fichier, tampon ( buffer ), fenêtre, cadre ( frame ) Ligne, colonne, point, marque, région Clé, touche, commande, table de liaison ( binding ) Modes (majeurs et mineurs) Fonctions (interactives ou pas), variables (locales ou globales)
82 Éléments d Emacs Fichier, tampon ( buffer ), fenêtre, cadre ( frame ) Ligne, colonne, point, marque, région Clé, touche, commande, table de liaison ( binding ) Modes (majeurs et mineurs) Fonctions (interactives ou pas), variables (locales ou globales)
83 Éléments d Emacs Fichier, tampon ( buffer ), fenêtre, cadre ( frame ) Ligne, colonne, point, marque, région Clé, touche, commande, table de liaison ( binding ) Modes (majeurs et mineurs) Fonctions (interactives ou pas), variables (locales ou globales)
84 Éléments d Emacs Fichier, tampon ( buffer ), fenêtre, cadre ( frame ) Ligne, colonne, point, marque, région Clé, touche, commande, table de liaison ( binding ) Modes (majeurs et mineurs) Fonctions (interactives ou pas), variables (locales ou globales)
85 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
86 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
87 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
88 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
89 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
90 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
91 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
92 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
93 Personnalisation d Emacs Emacs n est qu un interprète Lisp intégrant des fonctions spécialisées pour manipuler et afficher du texte. Ceci permet une très grande flexibilité. Emacs-lisp ~ /.emacs autoload auto-mode-alist add-hook...
94 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
95 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
96 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
97 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
98 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
99 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
100 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
101 LISP Un interprète LISP (LISt Processor) évalue uniquement des expressions. Les expressions sont écrites sous forme préfixe : l opérateur est placé devant ses opérandes. Les parenthèses entourent l opérateur et ses opérandes. L espace est l unique séparateur. x + y (+ x y) max(x, y) (max x y) x = y (setq x y) x = y > 0? z 1 : z 2 (setq x (if (> y 0) z1 z2))
102 i f ( x > 0 ) { y = 2 y ; } e l s e { y = 1 ; p r i n t f ( T i l t \n ) ; } ( i f (> x 0) ( s e t q y ( 2 y ) ) ( s e t q y 1) ( message T i l t ) )
103 while ( n > 0 ) { x = x + f ( n ) ; n ; } ( w h i l e (> n 0) ( s e t q x (+ x ( f n ) ) ) ( s e t q n ( n 1 ) ) )
104 { } i n t s = 0 ; s = f ( s, x1 ) ; s = f ( s, x2 ) ;... ( l e t ( ( s 0) ) ( s e t q s ( f s x1 ) ) ( s e t q s ( f s x2 ) )... )
105 i n t f a c t ( i n t n ) { return n == 0? 1 : n f a c t ( n 1 ) ; } ( defun f a c t ( n ) C a l c u l e f a c t o r i e l l e N ( i f (= n 0) 1 ( n ( f a c t ( n 1 ) ) ) ) )
106 Spécificités d emacs-lisp Emacs contient un grand nombre de fonctions prédéfinies comme if, setq, *, defun,... ; mais aussi des fonctions comme forward-char, apropos, find-file,... Les fonctions de ce deuxième groupe ont la particularité d être interactives : elles définissent des commandes qui peuvent être liées à des clés. Ainsi la clé C-f est en général liée à la commande forward-char, qui provoque l évaluation de l expression LISP (forward-char) qui avance le curseur d une position à droite dans le buffer courant. Par contre if ou setq ne sont pas interactives, ce ne sont pas des commandes.
107 Spécificités d emacs-lisp Emacs contient un grand nombre de fonctions prédéfinies comme if, setq, *, defun,... ; mais aussi des fonctions comme forward-char, apropos, find-file,... Les fonctions de ce deuxième groupe ont la particularité d être interactives : elles définissent des commandes qui peuvent être liées à des clés. Ainsi la clé C-f est en général liée à la commande forward-char, qui provoque l évaluation de l expression LISP (forward-char) qui avance le curseur d une position à droite dans le buffer courant. Par contre if ou setq ne sont pas interactives, ce ne sont pas des commandes.
108 Spécificités d emacs-lisp Emacs contient un grand nombre de fonctions prédéfinies comme if, setq, *, defun,... ; mais aussi des fonctions comme forward-char, apropos, find-file,... Les fonctions de ce deuxième groupe ont la particularité d être interactives : elles définissent des commandes qui peuvent être liées à des clés. Ainsi la clé C-f est en général liée à la commande forward-char, qui provoque l évaluation de l expression LISP (forward-char) qui avance le curseur d une position à droite dans le buffer courant. Par contre if ou setq ne sont pas interactives, ce ne sont pas des commandes.
109 Spécificités d emacs-lisp Emacs contient un grand nombre de fonctions prédéfinies comme if, setq, *, defun,... ; mais aussi des fonctions comme forward-char, apropos, find-file,... Les fonctions de ce deuxième groupe ont la particularité d être interactives : elles définissent des commandes qui peuvent être liées à des clés. Ainsi la clé C-f est en général liée à la commande forward-char, qui provoque l évaluation de l expression LISP (forward-char) qui avance le curseur d une position à droite dans le buffer courant. Par contre if ou setq ne sont pas interactives, ce ne sont pas des commandes.
110 Spécificités d emacs-lisp Emacs contient un grand nombre de fonctions prédéfinies comme if, setq, *, defun,... ; mais aussi des fonctions comme forward-char, apropos, find-file,... Les fonctions de ce deuxième groupe ont la particularité d être interactives : elles définissent des commandes qui peuvent être liées à des clés. Ainsi la clé C-f est en général liée à la commande forward-char, qui provoque l évaluation de l expression LISP (forward-char) qui avance le curseur d une position à droite dans le buffer courant. Par contre if ou setq ne sont pas interactives, ce ne sont pas des commandes.
111 Spécificités d emacs-lisp (suite) Il est possible de transmettre un paramètre à une fonction déclenchée par une commande. Par exemple la commande find-file, en général liée à la clé C-x C-f, provoque l évaluation de (find-file "fichier") où fichier est une chaîne de caractères acquise dans le mini-buffer. De même, si on tape C-u 1 2 C-f cela provoque l évaluation de (forward-char 12) qui avance le curseur de 12 positions à droite dans le buffer courant.
112 Spécificités d emacs-lisp (suite) Il est possible de transmettre un paramètre à une fonction déclenchée par une commande. Par exemple la commande find-file, en général liée à la clé C-x C-f, provoque l évaluation de (find-file "fichier") où fichier est une chaîne de caractères acquise dans le mini-buffer. De même, si on tape C-u 1 2 C-f cela provoque l évaluation de (forward-char 12) qui avance le curseur de 12 positions à droite dans le buffer courant.
113 Spécificités d emacs-lisp (suite) Il est possible de transmettre un paramètre à une fonction déclenchée par une commande. Par exemple la commande find-file, en général liée à la clé C-x C-f, provoque l évaluation de (find-file "fichier") où fichier est une chaîne de caractères acquise dans le mini-buffer. De même, si on tape C-u 1 2 C-f cela provoque l évaluation de (forward-char 12) qui avance le curseur de 12 positions à droite dans le buffer courant.
114 Évaluation par emacs-lisp Pour accéder à l interprète d Emacs deux commandes sont particulièrement utiles : 1. execute-extended-command : cette commande, en général liée à la clé M-x, provoque l exécution d une commande dont le nom est acquis dans le mini-buffer. 2. eval-expression : cette commande, en général liée à la clé M-:, permet d obtenir l évaluation d une expression LISP acquise dans le mini-buffer. Le résultat de l évaluation est affiché aussi dans le mini-buffer.
115 Évaluation par emacs-lisp Pour accéder à l interprète d Emacs deux commandes sont particulièrement utiles : 1. execute-extended-command : cette commande, en général liée à la clé M-x, provoque l exécution d une commande dont le nom est acquis dans le mini-buffer. 2. eval-expression : cette commande, en général liée à la clé M-:, permet d obtenir l évaluation d une expression LISP acquise dans le mini-buffer. Le résultat de l évaluation est affiché aussi dans le mini-buffer.
116 Évaluation par emacs-lisp Pour accéder à l interprète d Emacs deux commandes sont particulièrement utiles : 1. execute-extended-command : cette commande, en général liée à la clé M-x, provoque l exécution d une commande dont le nom est acquis dans le mini-buffer. 2. eval-expression : cette commande, en général liée à la clé M-:, permet d obtenir l évaluation d une expression LISP acquise dans le mini-buffer. Le résultat de l évaluation est affiché aussi dans le mini-buffer.
117 Il y a donc 3 manières d obtenir que le curseur se déplace d une position à droite dans le buffer courant : 1. C-f 2. M-x forward-char RET 3. M-: (forward-char) RET Pour déplacer le curseur de 12 positions à droite on a les 3 solutions suivantes : 1. C-u 1 2 C-f 2. C-u 1 2 M-x forward-char RET 3. M-: (forward-char 12) RET
118 Il y a donc 3 manières d obtenir que le curseur se déplace d une position à droite dans le buffer courant : 1. C-f 2. M-x forward-char RET 3. M-: (forward-char) RET Pour déplacer le curseur de 12 positions à droite on a les 3 solutions suivantes : 1. C-u 1 2 C-f 2. C-u 1 2 M-x forward-char RET 3. M-: (forward-char 12) RET
119 Il y a aussi 3 manières de charger le fichier toto.c dans un buffer : 1. C-x C-f toto.c RET 2. M-x find-file RET toto.c RET 3. M-: (find-file "toto.c") RET
120 D autres commandes utiles sont : eval-last-sexp : en général liée à la clé C-x C-e, provoque l évaluation de l expression LISP immédiatement avant le curseur dans le buffer courant. Le résultat est affiché dans le mini-buffer. eval-region : provoque l interprétation de toute la région courante dans le buffer courant. load-file : après l acquisition dans le mini-buffer d un nom de fichier, tout le fichier est interprété.
121 D autres commandes utiles sont : eval-last-sexp : en général liée à la clé C-x C-e, provoque l évaluation de l expression LISP immédiatement avant le curseur dans le buffer courant. Le résultat est affiché dans le mini-buffer. eval-region : provoque l interprétation de toute la région courante dans le buffer courant. load-file : après l acquisition dans le mini-buffer d un nom de fichier, tout le fichier est interprété.
122 D autres commandes utiles sont : eval-last-sexp : en général liée à la clé C-x C-e, provoque l évaluation de l expression LISP immédiatement avant le curseur dans le buffer courant. Le résultat est affiché dans le mini-buffer. eval-region : provoque l interprétation de toute la région courante dans le buffer courant. load-file : après l acquisition dans le mini-buffer d un nom de fichier, tout le fichier est interprété.
123 D autres commandes utiles sont : eval-last-sexp : en général liée à la clé C-x C-e, provoque l évaluation de l expression LISP immédiatement avant le curseur dans le buffer courant. Le résultat est affiché dans le mini-buffer. eval-region : provoque l interprétation de toute la région courante dans le buffer courant. load-file : après l acquisition dans le mini-buffer d un nom de fichier, tout le fichier est interprété.
124 ( defun numerote ( ) Numerote t o u t e l e s l i g n e s du b u f f e r ( i n t e r a c t i v e ) ( b e g i n n i n g o f b u f f e r ) ( l e t ( ( n 0) ) ( w h i l e (< ( p o i n t ) ( point max ) ) ( b e g i n n i n g o f l i n e ) ( s e t q n (+ n 1 ) ) ( i n s e r t s t r i n g n : ) ( n e x t l i n e 1) ) ) )
125 ( defun denumerote ( ) D e f a i t l e numerotage ( i n t e r a c t i v e ) ( b e g i n n i n g o f b u f f e r ) ( w h i l e (< ( p o i n t ) ( point max ) ) ( b e g i n n i n g o f l i n e ) ( r e p l a c e r e g e x p [0 9] : ) ( n e x t l i n e 1) ) )
126 ( defun genere numeros ( n ) I n s e r e l a s u i t e n a l a p o s i t i o n du c u r s e u r ( par d e f a u t n vaut 10) ( i n t e r a c t i v e p ) ( i f (= n 1) ( s e t q n 1 0)) ( w h i l e (>= n 0) ( i n s e r t ( format %d n ) ) ( s e t q n ( n 1 ) ) ) ) ( global set key \M n genere numeros )
127 Types de données 1. les nombres entiers : 12, et les chaînes de caractères : "un exemple" 3. les symboles : numerote, n, while, * 4. les listes : (1 2 3), ("bonjour" ("a" vous) 2), (* n 2), (quote (* n 2)), () Dans les tests, la liste vide () est interprétée comme faux. Toute autre valeur de quelque type que ce soit est interprétée comme vrai. Emacs-Lisp manipule d autres types de données comme les nombres flottants et les vecteurs, mais aussi des types de données plus spécialisés comme les buffers, les marques, les tables de liaison, etc
128 Types de données 1. les nombres entiers : 12, et les chaînes de caractères : "un exemple" 3. les symboles : numerote, n, while, * 4. les listes : (1 2 3), ("bonjour" ("a" vous) 2), (* n 2), (quote (* n 2)), () Dans les tests, la liste vide () est interprétée comme faux. Toute autre valeur de quelque type que ce soit est interprétée comme vrai. Emacs-Lisp manipule d autres types de données comme les nombres flottants et les vecteurs, mais aussi des types de données plus spécialisés comme les buffers, les marques, les tables de liaison, etc
129 Types de données 1. les nombres entiers : 12, et les chaînes de caractères : "un exemple" 3. les symboles : numerote, n, while, * 4. les listes : (1 2 3), ("bonjour" ("a" vous) 2), (* n 2), (quote (* n 2)), () Dans les tests, la liste vide () est interprétée comme faux. Toute autre valeur de quelque type que ce soit est interprétée comme vrai. Emacs-Lisp manipule d autres types de données comme les nombres flottants et les vecteurs, mais aussi des types de données plus spécialisés comme les buffers, les marques, les tables de liaison, etc
130 Types de données 1. les nombres entiers : 12, et les chaînes de caractères : "un exemple" 3. les symboles : numerote, n, while, * 4. les listes : (1 2 3), ("bonjour" ("a" vous) 2), (* n 2), (quote (* n 2)), () Dans les tests, la liste vide () est interprétée comme faux. Toute autre valeur de quelque type que ce soit est interprétée comme vrai. Emacs-Lisp manipule d autres types de données comme les nombres flottants et les vecteurs, mais aussi des types de données plus spécialisés comme les buffers, les marques, les tables de liaison, etc
131 Types de données 1. les nombres entiers : 12, et les chaînes de caractères : "un exemple" 3. les symboles : numerote, n, while, * 4. les listes : (1 2 3), ("bonjour" ("a" vous) 2), (* n 2), (quote (* n 2)), () Dans les tests, la liste vide () est interprétée comme faux. Toute autre valeur de quelque type que ce soit est interprétée comme vrai. Emacs-Lisp manipule d autres types de données comme les nombres flottants et les vecteurs, mais aussi des types de données plus spécialisés comme les buffers, les marques, les tables de liaison, etc
132 Types de données 1. les nombres entiers : 12, et les chaînes de caractères : "un exemple" 3. les symboles : numerote, n, while, * 4. les listes : (1 2 3), ("bonjour" ("a" vous) 2), (* n 2), (quote (* n 2)), () Dans les tests, la liste vide () est interprétée comme faux. Toute autre valeur de quelque type que ce soit est interprétée comme vrai. Emacs-Lisp manipule d autres types de données comme les nombres flottants et les vecteurs, mais aussi des types de données plus spécialisés comme les buffers, les marques, les tables de liaison, etc
133 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
134 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
135 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
136 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
137 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
138 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
139 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
140 Évaluations des expressions L écriture expression est une forme abrégée de (quote expression) qui empêche l évaluation de l expression. A contrario, (eval expression) force l évaluation du résultat de l expression. Exemple : (progn (setq a 3) (setq x a) (setq y a) (setq z (+ a 1)) (setq w (+ a 1))) = x vaut 3, y vaut a, z vaut 4 et w vaut (+ a 1) ; (eval x) vaut 3, (eval y) vaut 3, (eval z) vaut 4 et (eval w) vaut 4. Le symbole nil a une valeur prédéfinie : la liste vide (). Le symbole t a une valeur prédéfinie : le symbole t ; cette valeur est utilisée comme vrai. Le caractère ; introduit un commentaire.
141 Fonctions essentielles (if cond expr 1 expr 2...expr n ) : évalue cond puis, si cond a une valeur différente de nil alors évalue expr 1, sinon évalue expr 2,..., expr n. La valeur du if est celle de expr 1 ou celle de expr n, suivant le cas. (while cond expr 1...expr n ) : évalue cond et tant que la valeur de cond diffère de nil, alors expr 1,..., expr n et cond sont réévaluées. La valeur finale du while est toujours nil.
142 Fonctions essentielles (if cond expr 1 expr 2...expr n ) : évalue cond puis, si cond a une valeur différente de nil alors évalue expr 1, sinon évalue expr 2,..., expr n. La valeur du if est celle de expr 1 ou celle de expr n, suivant le cas. (while cond expr 1...expr n ) : évalue cond et tant que la valeur de cond diffère de nil, alors expr 1,..., expr n et cond sont réévaluées. La valeur finale du while est toujours nil.
143 Fonctions essentielles (if cond expr 1 expr 2...expr n ) : évalue cond puis, si cond a une valeur différente de nil alors évalue expr 1, sinon évalue expr 2,..., expr n. La valeur du if est celle de expr 1 ou celle de expr n, suivant le cas. (while cond expr 1...expr n ) : évalue cond et tant que la valeur de cond diffère de nil, alors expr 1,..., expr n et cond sont réévaluées. La valeur finale du while est toujours nil.
144 Fonctions essentielles (suite) (let (symb 1...symb p ) expr 1...expr n ) : évalue expr 1,..., expr n en y considérant symb 1,..., symb p comme des variables locales. Chaque symbole de la liste en 1 er paramètre de let, peut recevoir une valeur initiale en mettant (symb expr) en lieu et place de symb tout court. La valeur du let est celle de expr n. (defun symb (symb 1...symb p ) [ string ] expr 1...expr n ) : affecte à symb la fonction ayant symb 1,..., symb p comme paramètres formels et expr 1,..., expr n comme corps. La chaîne de caractères string documente la fonction. La valeur retournée par defun est le symbole symb. La valeur retournée par la fonction sera celle de expr n.
145 Fonctions essentielles (suite) (let (symb 1...symb p ) expr 1...expr n ) : évalue expr 1,..., expr n en y considérant symb 1,..., symb p comme des variables locales. Chaque symbole de la liste en 1 er paramètre de let, peut recevoir une valeur initiale en mettant (symb expr) en lieu et place de symb tout court. La valeur du let est celle de expr n. (defun symb (symb 1...symb p ) [ string ] expr 1...expr n ) : affecte à symb la fonction ayant symb 1,..., symb p comme paramètres formels et expr 1,..., expr n comme corps. La chaîne de caractères string documente la fonction. La valeur retournée par defun est le symbole symb. La valeur retournée par la fonction sera celle de expr n.
146 Introduction Plan de la section Compilation Mise au point Édition Documentation Introduction L A TEX Gestion de versions
147 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
148 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
149 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
150 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
151 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
152 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
153 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
154 Introduction L A TEX est un langage pour construire des documents textuels. Le compilateur a pour fonction essentielle de permettre le calcul de la présentation d un document à partir de sa structure. Il intègre pour le faire une très grande expertise des règles typographiques. Le langage doit donc permettre aussi bien d exprimer la structure d un document que d exprimer la présentation d un document. La construction d un document en L A TEX comprend deux parties : 1. choisir sa classe : la manière de calculer sa présentation 2. décrire sa structure
155 B.I.D.O.N Rue des Mots Sassonne-le-Creux Tél Fax : Sassonne-le-Creux, le 4 février 2010 Professeur Donald E. Knuth Stanford University Stanford, CA États-Unis Objet : Concours Regeot Cher Professeur Knuth, Nous vous informons que votre participation au grand jeu-concours Magazine Regeot - Hiver 2008 a bien été prise en compte. Rendez-vous sur à partir du 14 mai pour connaître la liste des gagnants! Ce message a été adressé à l aide des informations du fichier client de la société Automobiles Regeot. Vous bénéficiez d un droit d accès, de modification, de rectification et/ou de suppression des informations vous concernant. Pour exercer ce droit, il vous suffit de l exprimer par écrit auprès de Automobiles Regeot. Veuillez agréez, cher Professeur, à l expression de mes sentiments les meilleurs. C.c. Mme Jeanne Poto Pierre Martin
156 \ documentclass [ 1 2 pt, a 4 ] { l e t t r e } \usepackage [ f r e n c h ] { b a b e l } \usepackage [ u t f 8 ] { i n p u t e n c } \ begin { document } \name{ P i e r r e Martin } \ begin { l e t t e r }{ P r o f e s s e u r... Etats Unis } \ conc { Concours Regeot } \ opening { Cher P r o f e s s e u r Knuth, } Nous vous i n f o r m o n s que... des gagnants! Ce message a... Regeot. \ c l o s i n g { V e u i l l e z... m e i l l e u r s. } \ cc {Mme Jeanne Poto } \end{ l e t t e r } \end{ document }
157 \ documentclass [ 1 2 pt ] { a r t i c l e } \usepackage [ f r e n c h ] { b a b e l } \ t i t l e {Un exemple b a s i q u e } \ author { Bernard V a u q u e l i n } \ begin { document } \ m a k e t i t l e \ t a b l e o f c o n t e n t s \ s e c t i o n {La une } Cet a r t i c l e e s t t r o p... s i m p l e. Cet a r t i c l e e s t t r o p... s i m p l e. \ s e c t i o n {La deux } La s u i t e p l u s t a r d. \end{ document }
158 Un exemple basique Bernard Vauquelin 4 février 2010 Table des matières 1 La une 1 2 La deux 1 1 La une Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. Cet article est trop simple. 2 La deux La suite plus tard. 1
159 \ documentclass { beamer } \usepackage [ f r e n c h ] { b a b e l } \ usetheme { AnnArbor } \ begin { document } \ begin { frame } \ f r a m e t i t l e { T r o i s cas } \ begin { enumerate } \item un bon \item l e mauvais \item un a u t r e \end{ enumerate } \end{ frame } \ begin { frame } Rien \end{ frame } \end{ document }
160 Trois cas 1 un bon 2 le mauvais 3 un autre
161 Historique Donald E. Knuth écrit la première version de TEX entre 1977 et 1982 pour pouvoir éditer son encyclopédie The Art of Computer Programming de la meilleure manière qui soit. Leslie Lamport propose au début des années 80 un ensemble de macros TEX qui définit L A TEX. D.E. Knuth rémunére les bugs découverts dans ses compilateurs et dans ses livres. Il a fixé le prix à 1 centime de dollar pour le premier bug, puis double le prix à chaque nouveau bug découvert! (cf. Alexandre le Grand et Aristote). D.E. Knuth a été fait Docteur Honoris Causa de l Université Bordeaux 1 le 30 octobre 2007.
162 Historique Donald E. Knuth écrit la première version de TEX entre 1977 et 1982 pour pouvoir éditer son encyclopédie The Art of Computer Programming de la meilleure manière qui soit. Leslie Lamport propose au début des années 80 un ensemble de macros TEX qui définit L A TEX. D.E. Knuth rémunére les bugs découverts dans ses compilateurs et dans ses livres. Il a fixé le prix à 1 centime de dollar pour le premier bug, puis double le prix à chaque nouveau bug découvert! (cf. Alexandre le Grand et Aristote). D.E. Knuth a été fait Docteur Honoris Causa de l Université Bordeaux 1 le 30 octobre 2007.
163 Historique Donald E. Knuth écrit la première version de TEX entre 1977 et 1982 pour pouvoir éditer son encyclopédie The Art of Computer Programming de la meilleure manière qui soit. Leslie Lamport propose au début des années 80 un ensemble de macros TEX qui définit L A TEX. D.E. Knuth rémunére les bugs découverts dans ses compilateurs et dans ses livres. Il a fixé le prix à 1 centime de dollar pour le premier bug, puis double le prix à chaque nouveau bug découvert! (cf. Alexandre le Grand et Aristote). D.E. Knuth a été fait Docteur Honoris Causa de l Université Bordeaux 1 le 30 octobre 2007.
164 Historique Donald E. Knuth écrit la première version de TEX entre 1977 et 1982 pour pouvoir éditer son encyclopédie The Art of Computer Programming de la meilleure manière qui soit. Leslie Lamport propose au début des années 80 un ensemble de macros TEX qui définit L A TEX. D.E. Knuth rémunére les bugs découverts dans ses compilateurs et dans ses livres. Il a fixé le prix à 1 centime de dollar pour le premier bug, puis double le prix à chaque nouveau bug découvert! (cf. Alexandre le Grand et Aristote). D.E. Knuth a été fait Docteur Honoris Causa de l Université Bordeaux 1 le 30 octobre 2007.
165 Historique Donald E. Knuth écrit la première version de TEX entre 1977 et 1982 pour pouvoir éditer son encyclopédie The Art of Computer Programming de la meilleure manière qui soit. Leslie Lamport propose au début des années 80 un ensemble de macros TEX qui définit L A TEX. D.E. Knuth rémunére les bugs découverts dans ses compilateurs et dans ses livres. Il a fixé le prix à 1 centime de dollar pour le premier bug, puis double le prix à chaque nouveau bug découvert! (cf. Alexandre le Grand et Aristote). D.E. Knuth a été fait Docteur Honoris Causa de l Université Bordeaux 1 le 30 octobre 2007.
166 Historique Donald E. Knuth écrit la première version de TEX entre 1977 et 1982 pour pouvoir éditer son encyclopédie The Art of Computer Programming de la meilleure manière qui soit. Leslie Lamport propose au début des années 80 un ensemble de macros TEX qui définit L A TEX. D.E. Knuth rémunére les bugs découverts dans ses compilateurs et dans ses livres. Il a fixé le prix à 1 centime de dollar pour le premier bug, puis double le prix à chaque nouveau bug découvert! (cf. Alexandre le Grand et Aristote). D.E. Knuth a été fait Docteur Honoris Causa de l Université Bordeaux 1 le 30 octobre 2007.
167 Avantages Mise en page professionnelle sans souci, structures complexes facilitées, maintenance aisée, format standard et durable.
168 Avantages Mise en page professionnelle sans souci, structures complexes facilitées, maintenance aisée, format standard et durable.
169 Avantages Mise en page professionnelle sans souci, structures complexes facilitées, maintenance aisée, format standard et durable.
170 Avantages Mise en page professionnelle sans souci, structures complexes facilitées, maintenance aisée, format standard et durable.
171 Avantages Mise en page professionnelle sans souci, structures complexes facilitées, maintenance aisée, format standard et durable.
172 Forme générale \ documentclass[< o p t i o n s >]{< c l a s s e >} \usepackage[< o p t i o n s >{<paquetage >}... \ begin { document } % <commentaires>... \end{ document } Classes : book, article, letter, présentations, affiches, partitions musicales,... Paquetages : babel, inputenc, a4wide, multicol, ams,...
173 Forme générale \ documentclass[< o p t i o n s >]{< c l a s s e >} \usepackage[< o p t i o n s >{<paquetage >}... \ begin { document } % <commentaires>... \end{ document } Classes : book, article, letter, présentations, affiches, partitions musicales,... Paquetages : babel, inputenc, a4wide, multicol, ams,...
174 Forme générale \ documentclass[< o p t i o n s >]{< c l a s s e >} \usepackage[< o p t i o n s >{<paquetage >}... \ begin { document } % <commentaires>... \end{ document } Classes : book, article, letter, présentations, affiches, partitions musicales,... Paquetages : babel, inputenc, a4wide, multicol, ams,...
175 Modularité \ input{< f i c h i e r >} \ i n c l u d e o n l y{< l i s t e de f i c h i e r s >} \ i n c l ude{< f i c h i e r >} Pour \include : conditionnel, pas de suffixe dans les noms de fichiers, uniquement dans le corps du document et nécessairement à une frontière de page. Le paquetage graphicx définit aussi : \ i n c l u d e g r a p h i c s [< o p t i o n s >]{< f i c h i e r >}
176 Modularité \ input{< f i c h i e r >} \ i n c l u d e o n l y{< l i s t e de f i c h i e r s >} \ i n c l ude{< f i c h i e r >} Pour \include : conditionnel, pas de suffixe dans les noms de fichiers, uniquement dans le corps du document et nécessairement à une frontière de page. Le paquetage graphicx définit aussi : \ i n c l u d e g r a p h i c s [< o p t i o n s >]{< f i c h i e r >}
177 Modularité \ input{< f i c h i e r >} \ i n c l u d e o n l y{< l i s t e de f i c h i e r s >} \ i n c l ude{< f i c h i e r >} Pour \include : conditionnel, pas de suffixe dans les noms de fichiers, uniquement dans le corps du document et nécessairement à une frontière de page. Le paquetage graphicx définit aussi : \ i n c l u d e g r a p h i c s [< o p t i o n s >]{< f i c h i e r >}
178 Chapitrage Hiérarchie : \ c h a p t e r ( T i t r e de c h a p i t r e } \ s e c t i o n { T i t r e de s e c t i o n } \ paragraph { T i t r e de p a r a g r a p h e } Peuvent exister : \part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph. Variations : \ s e c t i o n { Pas dans l a TdM} \ s e c t i o n [ T i t r e c o u r t ] { T i t r e... l o n g }
179 Chapitrage Hiérarchie : \ c h a p t e r ( T i t r e de c h a p i t r e } \ s e c t i o n { T i t r e de s e c t i o n } \ paragraph { T i t r e de p a r a g r a p h e } Peuvent exister : \part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph. Variations : \ s e c t i o n { Pas dans l a TdM} \ s e c t i o n [ T i t r e c o u r t ] { T i t r e... l o n g }
180 Chapitrage Hiérarchie : \ c h a p t e r ( T i t r e de c h a p i t r e } \ s e c t i o n { T i t r e de s e c t i o n } \ paragraph { T i t r e de p a r a g r a p h e } Peuvent exister : \part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph. Variations : \ s e c t i o n { Pas dans l a TdM} \ s e c t i o n [ T i t r e c o u r t ] { T i t r e... l o n g }
181 Chapitrage Hiérarchie : \ c h a p t e r ( T i t r e de c h a p i t r e } \ s e c t i o n { T i t r e de s e c t i o n } \ paragraph { T i t r e de p a r a g r a p h e } Peuvent exister : \part, \chapter, \section, \subsection, \subsubsection, \paragraph, \subparagraph. Variations : \ s e c t i o n { Pas dans l a TdM} \ s e c t i o n [ T i t r e c o u r t ] { T i t r e... l o n g }
182 Mathématiques La v a l e u r de $x i La valeur de x i 2 n+1 yi 2 est 2ˆ{ n+1} y i ˆ2$ e s t comme comme dans dans $$ z= p \sum { k=1}ˆp \ f r a c {1}{ 1 z = \ alpha+kˆ{ x i }} 1$$ α + k x 1 i k=1 a p proximativement! approximativement!
183 Environnements \ begin{<environnement >}[< o p t i o n s > ] \end{<environnement >} Le t e x t e e s t l e s u i v a n t : \ begin { v e r s e } Un exemple i d i o t de t e x t e s t u p i d e. \end{ v e r s e } C e s t f i n i. Le texte est le suivant : Un exemple idiot de texte stupide. C est fini.
184 Listes \ begin { enumerate } \item N a r c i s s e \item [ 1 b i s ] T u l i p e \item Rose \ l a b e l { t o t o } \end{ enumerate } \ begin { d e s c r i p t i o n } 1. Narcisse 1bis Tulipe 2. Rose \item [ rouge ] une c o u l e u r rouge une couleur \item [ b l e u c i e l ] 1 a u t r e \ begin { i t e m i z e } bleu ciel 1 autre \item f r o i d froid \item lumineux lumineux \end{ i t e m i z e } vert encore une \item [ v e r t ] e n c o r e une \end{ d e s c r i p t i o n }
185 Tableaux Exemple de l a p r o c h a i n e l i g n e 1 2 : \ begin { t a b u l a r } { l cc } \ h l i n e rouge & 17 & 1 \\ Exemple de la prochaine ligne \ h l i n e rouge 17-1 b l e u c i e l & 3 & 12 \\ 12 : bleu ciel 3 12 etc \ h l i n e vert nul 9 v e r t & \ i t n u l & 9 \\ \ h l i n e \end{ t a b u l a r } e t c
186 Autres environnements Divers : center, flushleft, flushright, quote, quotation, theorem, verbatim, list, titlepage, thebibliography, minipage, tabbing, picture. Mathématiques : math, displaymath, equation, eqnarray, array. Flottants : figure, table : peuvent avoir une légende (\caption{...}), se placent librement dans la page, ont leurs propres tables de références.
187 Autres environnements Divers : center, flushleft, flushright, quote, quotation, theorem, verbatim, list, titlepage, thebibliography, minipage, tabbing, picture. Mathématiques : math, displaymath, equation, eqnarray, array. Flottants : figure, table : peuvent avoir une légende (\caption{...}), se placent librement dans la page, ont leurs propres tables de références.
188 Autres environnements Divers : center, flushleft, flushright, quote, quotation, theorem, verbatim, list, titlepage, thebibliography, minipage, tabbing, picture. Mathématiques : math, displaymath, equation, eqnarray, array. Flottants : figure, table : peuvent avoir une légende (\caption{...}), se placent librement dans la page, ont leurs propres tables de références.
189 Références A l l e z v o i r \ footnote { s i vous l e v o u l e z } l a f l e u r dans l item \ r e f { t o t o } en page \ pageref { t o t o }. Bla b l a \& b l a b l a \& \ l d o t s Allez voir a la fleur dans l item 2 en page 184. Bla bla & bla bla &... a si vous le voulez
190 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
191 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
192 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
193 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
194 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
195 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
196 Mise en forme L \ ˆ age de l \ oe{} u v r e de l \ t e x t b f { I l i a d e } L âge de l œuvre de l Iliade e s t \\ t r \ es est c e r\ t a i \ ne\ ment {\ l a r g e très certainement particulièrement difficile à p a r t i c u l i \ erement \emph{ d i f f i c i l e } deviner. \ a } d e v i n e r. \textit{...},... ; \it, \rm,... ; \tiny, \normalsize,... ; \sloppy et \fussy. \linebreak[<0 à 4>] ; \pagebreak[<0 à 4>], \nopagebreak[<0 à 4>], \newpage, \clearpage.
197 Programmation \newcommand{\ u b x i }{\ b f U n i v e r s i t \ e Bordeaux 1} \newcommand{\ a l a } [ 1 ] {$ˆ{\mbox{% Ceci est le 1 er essai de \ s c r i p t s i z e #1}}$} M e Pierre à l Université C e c i e s t l e 1\ a l a { e r } Bordeaux 1. e s s a i de M\ a l a { e } P i e r r e \ a l \ u b x i. Les \newcommand vont généralement avant \begin{document}. On peut aussi définir des environnements ; définir et calculer des compteurs, des longueurs, des nombres ; faire des tests. Toutes choses particulièrement utiles pour écrire des paquetages et définir de nouvelles classes de documents.
198 Programmation \newcommand{\ u b x i }{\ b f U n i v e r s i t \ e Bordeaux 1} \newcommand{\ a l a } [ 1 ] {$ˆ{\mbox{% Ceci est le 1 er essai de \ s c r i p t s i z e #1}}$} M e Pierre à l Université C e c i e s t l e 1\ a l a { e r } Bordeaux 1. e s s a i de M\ a l a { e } P i e r r e \ a l \ u b x i. Les \newcommand vont généralement avant \begin{document}. On peut aussi définir des environnements ; définir et calculer des compteurs, des longueurs, des nombres ; faire des tests. Toutes choses particulièrement utiles pour écrire des paquetages et définir de nouvelles classes de documents.
199 Programmation \newcommand{\ u b x i }{\ b f U n i v e r s i t \ e Bordeaux 1} \newcommand{\ a l a } [ 1 ] {$ˆ{\mbox{% Ceci est le 1 er essai de \ s c r i p t s i z e #1}}$} M e Pierre à l Université C e c i e s t l e 1\ a l a { e r } Bordeaux 1. e s s a i de M\ a l a { e } P i e r r e \ a l \ u b x i. Les \newcommand vont généralement avant \begin{document}. On peut aussi définir des environnements ; définir et calculer des compteurs, des longueurs, des nombres ; faire des tests. Toutes choses particulièrement utiles pour écrire des paquetages et définir de nouvelles classes de documents.
200 Programmation \newcommand{\ u b x i }{\ b f U n i v e r s i t \ e Bordeaux 1} \newcommand{\ a l a } [ 1 ] {$ˆ{\mbox{% Ceci est le 1 er essai de \ s c r i p t s i z e #1}}$} M e Pierre à l Université C e c i e s t l e 1\ a l a { e r } Bordeaux 1. e s s a i de M\ a l a { e } P i e r r e \ a l \ u b x i. Les \newcommand vont généralement avant \begin{document}. On peut aussi définir des environnements ; définir et calculer des compteurs, des longueurs, des nombres ; faire des tests. Toutes choses particulièrement utiles pour écrire des paquetages et définir de nouvelles classes de documents.
201 Programmation \newcommand{\ u b x i }{\ b f U n i v e r s i t \ e Bordeaux 1} \newcommand{\ a l a } [ 1 ] {$ˆ{\mbox{% Ceci est le 1 er essai de \ s c r i p t s i z e #1}}$} M e Pierre à l Université C e c i e s t l e 1\ a l a { e r } Bordeaux 1. e s s a i de M\ a l a { e } P i e r r e \ a l \ u b x i. Les \newcommand vont généralement avant \begin{document}. On peut aussi définir des environnements ; définir et calculer des compteurs, des longueurs, des nombres ; faire des tests. Toutes choses particulièrement utiles pour écrire des paquetages et définir de nouvelles classes de documents.
202 Programmation \newcommand{\ u b x i }{\ b f U n i v e r s i t \ e Bordeaux 1} \newcommand{\ a l a } [ 1 ] {$ˆ{\mbox{% Ceci est le 1 er essai de \ s c r i p t s i z e #1}}$} M e Pierre à l Université C e c i e s t l e 1\ a l a { e r } Bordeaux 1. e s s a i de M\ a l a { e } P i e r r e \ a l \ u b x i. Les \newcommand vont généralement avant \begin{document}. On peut aussi définir des environnements ; définir et calculer des compteurs, des longueurs, des nombres ; faire des tests. Toutes choses particulièrement utiles pour écrire des paquetages et définir de nouvelles classes de documents.
203 Introduction Plan de la section Compilation Mise au point Édition Documentation Gestion de versions Présentation Compléments
204 Développement collaboratif et gestion de versions Les outils existant cumulent le plus souvent les deux fonctions : 1. travail à plusieurs et à distance sur un même projet 2. gestion des différentes versions d un même projet La méthode traditionnelle utilise la modèle client-serveur, où sont regroupées sur un seul serveur toutes les informations du projet. Si ces informations sont réparties sur plusieurs sites, on parle de modèle distribué.
205 Le modèle client-seveur Les informations partagées sont stockées dans un dépôt ( repository ) sur un serveur central.
206 Le problème
207 Les solutions 1. verrouiller pendant le travail ( lock-modify-unlock ) 2. travailler sur une copie ( copy-modify-merge )
208 Les solutions 1. verrouiller pendant le travail ( lock-modify-unlock ) 2. travailler sur une copie ( copy-modify-merge )
209 Verrou
210 Les solutions 1. verrouiller pendant le travail ( lock-modify-unlock ) 2. travailler sur une copie ( copy-modify-merge )
211 Copie (1/2)
212 Copie (2/2)
213 Les opérations de base de Subversion Ces opérations s appliquent à un ou plusieurs fichiers, le plus souvent on les applique à un répertoire entier. 1. Read : 1.1 la première fois : checkout (ou co) = création d une copie de travail à partir du contenu du dépôt 1.2 les fois suivantes : update (ou up) = mise à jour d une copie de travail existante à partir du contenu du dépôt 2. Write : commit (ou ci) = enregistrement dans le dépôt des dernières modifications effectuées dans une copie de travail (seule opération susceptible d être rejetée par Subversion)
214 Les opérations de base de Subversion Ces opérations s appliquent à un ou plusieurs fichiers, le plus souvent on les applique à un répertoire entier. 1. Read : 1.1 la première fois : checkout (ou co) = création d une copie de travail à partir du contenu du dépôt 1.2 les fois suivantes : update (ou up) = mise à jour d une copie de travail existante à partir du contenu du dépôt 2. Write : commit (ou ci) = enregistrement dans le dépôt des dernières modifications effectuées dans une copie de travail (seule opération susceptible d être rejetée par Subversion)
215 Les opérations de base de Subversion Ces opérations s appliquent à un ou plusieurs fichiers, le plus souvent on les applique à un répertoire entier. 1. Read : 1.1 la première fois : checkout (ou co) = création d une copie de travail à partir du contenu du dépôt 1.2 les fois suivantes : update (ou up) = mise à jour d une copie de travail existante à partir du contenu du dépôt 2. Write : commit (ou ci) = enregistrement dans le dépôt des dernières modifications effectuées dans une copie de travail (seule opération susceptible d être rejetée par Subversion)
216 Les opérations de base de Subversion Ces opérations s appliquent à un ou plusieurs fichiers, le plus souvent on les applique à un répertoire entier. 1. Read : 1.1 la première fois : checkout (ou co) = création d une copie de travail à partir du contenu du dépôt 1.2 les fois suivantes : update (ou up) = mise à jour d une copie de travail existante à partir du contenu du dépôt 2. Write : commit (ou ci) = enregistrement dans le dépôt des dernières modifications effectuées dans une copie de travail (seule opération susceptible d être rejetée par Subversion)
217 Les opérations de base de Subversion Ces opérations s appliquent à un ou plusieurs fichiers, le plus souvent on les applique à un répertoire entier. 1. Read : 1.1 la première fois : checkout (ou co) = création d une copie de travail à partir du contenu du dépôt 1.2 les fois suivantes : update (ou up) = mise à jour d une copie de travail existante à partir du contenu du dépôt 2. Write : commit (ou ci) = enregistrement dans le dépôt des dernières modifications effectuées dans une copie de travail (seule opération susceptible d être rejetée par Subversion)
218 Opérations de base dépôt checkout update commit commit update checkout copie de travail copie de travail
219 Opérations de base (suite) original import dépôt export checkout update commit commit update checkout copie de travail copie de travail
220 Syntaxe simplifiée des commandes Une ressource (fichier ou répertoire) d un dépôt est toujours désignée par une URL (http ://..., file ://... ). Une ressource locale est, elle, désignée par un chemin. svn [options] opération [source] [destination] [options] Exemples : svn checkout labri. fr /toto/trunk. svn update./doc svn commit. m Correction du bug 343. Chaque opération qui modifie le contenu du dépôt doit être accompagnée d un commentaire justificatif. En l absence de l option -m, svn ouvre un éditeur pour acquérir le commentaire.
221 Syntaxe simplifiée des commandes Une ressource (fichier ou répertoire) d un dépôt est toujours désignée par une URL (http ://..., file ://... ). Une ressource locale est, elle, désignée par un chemin. svn [options] opération [source] [destination] [options] Exemples : svn checkout labri. fr /toto/trunk. svn update./doc svn commit. m Correction du bug 343. Chaque opération qui modifie le contenu du dépôt doit être accompagnée d un commentaire justificatif. En l absence de l option -m, svn ouvre un éditeur pour acquérir le commentaire.
222 Syntaxe simplifiée des commandes Une ressource (fichier ou répertoire) d un dépôt est toujours désignée par une URL (http ://..., file ://... ). Une ressource locale est, elle, désignée par un chemin. svn [options] opération [source] [destination] [options] Exemples : svn checkout labri. fr /toto/trunk. svn update./doc svn commit. m Correction du bug 343. Chaque opération qui modifie le contenu du dépôt doit être accompagnée d un commentaire justificatif. En l absence de l option -m, svn ouvre un éditeur pour acquérir le commentaire.
223 Gestion des versions Svn conserve dans le dépôt toutes les versions successives de chaque fichier. Pour cela svn entretient un entier, le numéro de dernière révision 1, qui est initialisé à zéro à la création du dépôt, et incrémenté à chaque opération qui modifie le contenu du dépôt. Chaque version d un même fichier est repérée par le numéro de révision de l opération qui l a placée en dépôt. 1 noté HEAD
224 Gestion des versions Svn conserve dans le dépôt toutes les versions successives de chaque fichier. Pour cela svn entretient un entier, le numéro de dernière révision 1, qui est initialisé à zéro à la création du dépôt, et incrémenté à chaque opération qui modifie le contenu du dépôt. Chaque version d un même fichier est repérée par le numéro de révision de l opération qui l a placée en dépôt. 1 noté HEAD
225 Gestion des versions Svn conserve dans le dépôt toutes les versions successives de chaque fichier. Pour cela svn entretient un entier, le numéro de dernière révision 1, qui est initialisé à zéro à la création du dépôt, et incrémenté à chaque opération qui modifie le contenu du dépôt. Chaque version d un même fichier est repérée par le numéro de révision de l opération qui l a placée en dépôt. 1 noté HEAD
226 États d un fichier de travail Dans la copie de travail un fichier peut être dans un des 4 cas suivants. 1. localement pas modifié et inchangé dans le dépôt : non concerné par commit ni par update 2. localement modifié et inchangé dans le dépôt : il peut être enregistré sans problème dans le dépôt par commit et n est pas changé par un update 3. localement pas modifié et changé dans le dépôt : commit n a pas d effet, mais update le modifie pour le mettre à jour 4. localement modifié et changé dans le dépôt : commit échoue, update tente de fusionner les modifications et les changements, ou bien laisse l utilisateur régler le conflit
227 États d un fichier de travail Dans la copie de travail un fichier peut être dans un des 4 cas suivants. 1. localement pas modifié et inchangé dans le dépôt : non concerné par commit ni par update 2. localement modifié et inchangé dans le dépôt : il peut être enregistré sans problème dans le dépôt par commit et n est pas changé par un update 3. localement pas modifié et changé dans le dépôt : commit n a pas d effet, mais update le modifie pour le mettre à jour 4. localement modifié et changé dans le dépôt : commit échoue, update tente de fusionner les modifications et les changements, ou bien laisse l utilisateur régler le conflit
228 États d un fichier de travail Dans la copie de travail un fichier peut être dans un des 4 cas suivants. 1. localement pas modifié et inchangé dans le dépôt : non concerné par commit ni par update 2. localement modifié et inchangé dans le dépôt : il peut être enregistré sans problème dans le dépôt par commit et n est pas changé par un update 3. localement pas modifié et changé dans le dépôt : commit n a pas d effet, mais update le modifie pour le mettre à jour 4. localement modifié et changé dans le dépôt : commit échoue, update tente de fusionner les modifications et les changements, ou bien laisse l utilisateur régler le conflit
229 États d un fichier de travail Dans la copie de travail un fichier peut être dans un des 4 cas suivants. 1. localement pas modifié et inchangé dans le dépôt : non concerné par commit ni par update 2. localement modifié et inchangé dans le dépôt : il peut être enregistré sans problème dans le dépôt par commit et n est pas changé par un update 3. localement pas modifié et changé dans le dépôt : commit n a pas d effet, mais update le modifie pour le mettre à jour 4. localement modifié et changé dans le dépôt : commit échoue, update tente de fusionner les modifications et les changements, ou bien laisse l utilisateur régler le conflit
230 États d un fichier de travail Dans la copie de travail un fichier peut être dans un des 4 cas suivants. 1. localement pas modifié et inchangé dans le dépôt : non concerné par commit ni par update 2. localement modifié et inchangé dans le dépôt : il peut être enregistré sans problème dans le dépôt par commit et n est pas changé par un update 3. localement pas modifié et changé dans le dépôt : commit n a pas d effet, mais update le modifie pour le mettre à jour 4. localement modifié et changé dans le dépôt : commit échoue, update tente de fusionner les modifications et les changements, ou bien laisse l utilisateur régler le conflit
231 Exemples de commandes La commande svnadmin et les opérations import, checkout, update, commit, export svnadmin c r e a t e /home/ s v n r e p svn import. f i l e : ///home/ s v n r e p / t o t o / t r u n k svn checkout f i l e : ///home/ s v n r e p / t o t o / t r u n k t o t o svn update svn commit m Encore un bug en moins! svn e x p o r t r 345 f i l e : ///home/ s v n r e p / t o t o / t r u n k Quelques autres opérations : list, cat ; help ; status, log ; add, delete, copy, move ; diff, revert, resolved
232 Exemples de commandes La commande svnadmin et les opérations import, checkout, update, commit, export svnadmin c r e a t e /home/ s v n r e p svn import. f i l e : ///home/ s v n r e p / t o t o / t r u n k svn checkout f i l e : ///home/ s v n r e p / t o t o / t r u n k t o t o svn update svn commit m Encore un bug en moins! svn e x p o r t r 345 f i l e : ///home/ s v n r e p / t o t o / t r u n k Quelques autres opérations : list, cat ; help ; status, log ; add, delete, copy, move ; diff, revert, resolved
233 Historique très récent (fiabilité?) successeur de CVS 2, lui même basé sur RCS 3 déjà très utilisé en lieu et place de CVS 2 Concurrent Versions System 3 Revision Control System
234 Quelques états? présent localement mais absent du dépôt! absent localement mais présent dans le dépôt A va être ajouté dans le dépôt C en conflit (changé dans le dépôt et modifié localement au même endroit dans le fichier) G les modifications locales viennent d ête fusionnées avec les changements enregistrés dans le dépôt D va être supprimé du dépôt M localement modifié U vient d être modifié par une mise à jour (update)
235 Le dépôt Le niveau de sécurité et de confidentialité dépend du type de serveur utilisé : file utilise le contrôle d accès du système d exploitation svn utilise un serveur spécifique (svnserve), contrôle d accès minimaliste svn+ssh idem svn mais avec une couche ssh assurant un meilleur contrôle d accès et une parfaite confidentialité http utilise un serveur HTTP qui incorpore le protocole WebDAV, contrôle d accès minimaliste https idem avec contrôle d accès par SSL (sécurité optimale) Le système de fichier utilisé dans le dépôt est le plus souvent le système spécifique fsfs.
236 Les branches Le dépôt est traditionellement organisé comme suit : / projet 1/ trunk/ fichiers tags/ nom de version/fichiers... branches idem projet 2/ idem... Les branches et les tags son créés avec svn copy. La commande svn merge permet d envisager des fusions de branches.
237 Exemple de branchages
Cours 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étailQuelques éléments de compilation en C et makefiles
Quelques éléments de compilation en C et makefiles Guillaume Feuillade 1 Compiler un programme C Le principe de la compilation consiste à passer d un ensemble de fichiers de code à un programme exécutable
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é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étailSeance 2: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu.
Seance 2: Complétion du code de jeu. (durée max: 2h) Mot clé const et pointeurs: En respectant la méthode de programmation par contrat, implémentez les autres fonctions de jeu. Implémentez jeu_recupere_piece
Plus en détailPlan global Outils de développement et compilation. Plan. Objectifs des outils présentés. IDE, GCC/Clang, ASAN, perf, valgrind, GDB.
global Outils de développement et compilation IDE, GCC/Clang, ASAN, perf, valgrind, GDB Timothée Ravier LIFO, INSA-CVL, LIPN 1 re année cycle ingénieur STI 2013 2014 1 / 36 Objectifs des outils présentés
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é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étailChapitre 10 : Logiciels
Chapitre 10 : Logiciels Installation de logiciels dans Linux IUT Lannion - Systèmes - 1e année - Nerzic - 2014-15 1 10.1 Installation manuelle Cette partie explique comment on compile et installe un logiciel
Plus en détailTP1. 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étailLa mémoire. Un ordinateur. L'octet. Le bit
Introduction à l informatique et à la programmation Un ordinateur Un ordinateur est une machine à calculer composée de : un processeur (ou unité centrale) qui effectue les calculs une mémoire qui conserve
Plus en détailUtiliser Dev-C++ .1Installation de Dev-C++ Table des matières
Utiliser Dev-C++ Voici quelques explications sur l utilisation de Dev-C++, un excellent environnement de développement en C et C++ pour Windows qu on peut télécharger librement depuis le site www.bloodshed.net
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étailTP 1 Prise en main de l environnement Unix
Introduction aux systèmes d exploitation (IS1) TP 1 Prise en main de l environnement Unix Le but de ce premier TP est de commencer à vous familiariser avec l environnement Unix. 1 Ouverture de session
Plus en détailOutils pour la pratique
Cinquième partie Outils pour la pratique 121 CHAPITRE 1 Les bases des séances de TP Avant de lire cettre section, il est suggéré de relire vos notes de cours se rapportant au système d exploitation Unix.
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étailEnvironnements et Outils de Développement Cours 1 Introduction
Environnements et Outils de Développement Cours 1 Introduction Stefano Zacchiroli zack@pps.univ-paris-diderot.fr Laboratoire PPS, Université Paris Diderot - Paris 7 URL http://upsilon.cc/~zack/teaching/1112/ed6/
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é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é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é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étailC.M. 1 & 2 : Prise en main de Linux
Grégory Bonnet gregory.bonnet@unicaen.fr GREYC Université Caen Basse Normandie Diaporama original : Jean-Philippe Métivier - Boris Lesner But de cet enseignement 1 - Apprendre à manipuler un système Unix/Linux
Plus en détailChapitre 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étailUne introduction à Java
Une introduction à Java IFT 287 (Semaine 1) UNIVERSITÉ DE SHERBROOKE 1 Java - Historique Développé par Sun Microsystems en 1994 Inventeur James Gosling (canadien!) Objectif langage sûr (fortement typé)
Plus en détail1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus :
1) Installation de Dev-C++ Téléchargez le fichier devcpp4990setup.exe dans un répertoire de votre PC, puis double-cliquez dessus : La procédure d installation démarre. La fenêtre suivante vous indique
Plus en détailCours d introduction à l informatique. Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions
Cours d introduction à l informatique Partie 2 : Comment écrire un algorithme? Qu est-ce qu une variable? Expressions et instructions Qu est-ce qu un Une recette de cuisine algorithme? Protocole expérimental
Plus en détailTP1 : Initiation à l algorithmique (1 séance)
Université de Versailles Vanessa Vitse IUT de Vélizy - Algorithmique 2006/2007 TP1 : Initiation à l algorithmique (1 séance) 1 Prise en main de l environnement Unix : rappels et compléments Le but de la
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étailTP1 - Prise en main de l environnement Unix.
Mise à niveau UNIX Licence Bio-informatique TP1 - Prise en main de l environnement Unix. Les sujets de TP sont disponibles à l adresse http://www.pps.jussieu.fr/~tasson/enseignement/bioinfo/ Les documents
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étailIntroduction à la Programmation Parallèle: MPI
Introduction à la Programmation Parallèle: MPI Frédéric Gava et Gaétan Hains L.A.C.L Laboratoire d Algorithmique, Complexité et Logique Cours du M2 SSI option PSSR Plan 1 Modèle de programmation 2 3 4
Plus en détailProgrammation en langage C
Programmation en langage C Anne CANTEAUT INRIA - projet CODES B.P. 105 78153 Le Chesnay Cedex Anne.Canteaut@inria.fr http://www-rocq.inria.fr/codes/anne.canteaut/cours C 2 Table des matières 3 Table des
Plus en détailUE 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é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étailTP Contraintes - Triggers
TP Contraintes - Triggers 1. Préambule Oracle est accessible sur le serveur Venus et vous êtes autorisés à accéder à une instance licence. Vous utiliserez l interface d accés SQL*Plus qui permet l exécution
Plus en détailTutoriel code::blocks
Tutoriel code::blocks E. Lunéville 2006 Le logiciel code::blocks fait partie des logiciels de type EDI (Environnement de Développement Intégré, IDE en anglais) pour le langage C++. Il est multiplateforme
Plus en détailLangage propre à Oracle basé sur ADA. Offre une extension procédurale à SQL
Cours PL/SQL Langage propre à Oracle basé sur ADA Offre une extension procédurale à SQL PL/SQL permet d utiliser un sous-ensemble du langage SQL des variables, des boucles, des alternatives, des gestions
Plus en détailIntroduction à la programmation Travaux pratiques: séance d introduction INFO0201-1
Introduction à la programmation Travaux pratiques: séance d introduction INFO0201-1 B. Baert & F. Ludewig Bruno.Baert@ulg.ac.be - F.Ludewig@ulg.ac.be Qu est-ce que la programmation? Programmer Ecrire un
Plus en détailHelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM. Manuel d'utilisation
HelpAndManual_unregistered_evaluation_copy GESTIONNAIRE D'ALARMES CENTRALISE OPTIM'ALARM Manuel d'utilisation OPTIMALOG 2008 Table des matières I Table des matières Part I Gestionnaire d'alarmes Optim'Alarm
Plus en détailPremiers pas en Linux
Premiers pas en Linux 1 Bref historique Linux Système d'exploitation créé en 1991. Par Linus Torvalds un étudiant nlandais. Développé et amélioré par des centaines de spécialistes dans le monde. Particularité
Plus en détailMon premier rpm. http://alexandre-mesle.com 7 juin 2010. 1 Avant de commencer 2 1.1 RPM... 2 1.2 URPMI... 2 1.3 RPMBUILD... 2
Mon premier rpm http://alexandre-mesle.com 7 juin 2010 Table des matières 1 Avant de commencer 2 1.1 RPM....................................................... 2 1.2 URPMI.....................................................
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étailUtilisation 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é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étailLicence Sciences et Technologies Examen janvier 2010
Université de Provence Introduction à l Informatique Licence Sciences et Technologies Examen janvier 2010 Année 2009-10 Aucun document n est autorisé Les exercices peuvent être traités dans le désordre.
Plus en détailEnvironnements de développement (intégrés)
Environnements de développement (intégrés) Introduction aux EDI, la plateforme Eclipse Patrick Labatut labatut@di.ens.fr http://www.di.ens.fr/~labatut/ Département d informatique École normale supérieure
Plus en détailEclipse atelier Java
Eclipse atelier Java Table des matières 1. Introduction...2 2. Télécharger eclipse...3 3. Installer eclipse...3 4. Premier lancement d eclipse...3 5. Configurer eclipse pour faire du Java...5 6. Développer
Plus en détailTour d'horizon Bureau client Daemon's Aller plus loin
Logiciels Libres? Distribution Spécificités Arborescence Joseph Maillardet Assistant Ingénieur de Recherche et Formation *** IUT de Nîmes Université de Montpellier II Logiciels Libres? Distribution Spécificités
Plus en détailProgrammation en C. École Nationale Supérieure de Techniques Avancées. Pierre-Alain Fouque et David Pointcheval
École Nationale Supérieure de Techniques Avancées Programmation en C Pierre-Alain Fouque et David Pointcheval E-mail : Pierre-Alain.Fouque@ens.fr Web : http://www.di.ens.fr/~fouque/ Table des matières
Plus en détailLe langage C. Séance n 4
Université Paris-Sud 11 Institut de Formation des Ingénieurs Remise à niveau INFORMATIQUE Année 2007-2008 Travaux pratiques d informatique Le langage C Séance n 4 But : Vous devez maîtriser à la fin de
Plus en détailInstallation et compilation de gnurbs sous Windows
Installation et compilation de gnurbs sous Windows Installation de l environnement de développement Code::Blocks (Environnement de développement) 1. Télécharger l installateur de Code::Blocks (version
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étailSystèmes d exploitation
Systèmes d exploitation Virtualisation, Sécurité et Gestion des périphériques Gérard Padiou Département Informatique et Mathématiques appliquées ENSEEIHT Novembre 2009 Gérard Padiou Systèmes d exploitation
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étailChaîne de production d un programme
227 Plan 1. Généralités : compilateur, assembleur, éditeur de liens compilation séparée directives #include, espace d adressage d un programme 2. l'outil make cible, dépendance fichier Makefile de base
Plus en détailManuel de System Monitor
Chris Schlaeger John Tapsell Chris Schlaeger Tobias Koenig Traduction française : Yves Dessertine Traduction française : Philippe Guilbert Traduction française : Robin Guitton Relecture de la documentation
Plus en détailALERT NOTICE D UTILISATION DU DRIVER PC-TEXTE
1) Installation ALERT NOTICE D UTILISATION DU DRIVER PC-TEXTE A) Installation du driver PC-TEXTE Lors de l installation du logiciel ALERT, le gestionnaire de communication «PC-TEXTE» doit être sélectionné
Plus en détailTraitement de données
Traitement de données Présentation du module TINI Présentation du module : Le module Tini se décline en plusieurs versions, il est constitué d une carte d application et d un module processeur : Les modules
Plus en détailProgrammation système de commandes en C
Programmation système de commandes en C Cours de Programmation système Tuyêt Trâm DANG NGOC Université de Cergy-Pontoise 2012 2013 Tuyêt Trâm DANG NGOC Programmation système de commandes
Plus en détailBusiness Talk IP Centrex. guide. web utilisateur. pour. les services standards
guide web utilisateur pour les services standards 1/22 version 03 décembre 2013 table des matières Accès au web utilisateur... 3 Onglet accueil... 5 Onglet services téléphoniques... 7 services standards...
Plus en détailGUIDE Excel (version débutante) Version 2013
Table des matières GUIDE Excel (version débutante) Version 2013 1. Créer un nouveau document Excel... 3 2. Modifier un document Excel... 3 3. La fenêtre Excel... 4 4. Les rubans... 4 5. Saisir du texte
Plus en détailArchitecture des ordinateurs
Architecture des ordinateurs Cours 4 5 novembre 2012 Archi 1/22 Micro-architecture Archi 2/22 Intro Comment assembler les différents circuits vus dans les cours précédents pour fabriquer un processeur?
Plus en détailBoot Camp Guide d installation et de configuration
Boot Camp Guide d installation et de configuration Table des matières 3 Introduction 4 Configuration requise 5 Vue d ensemble de l installation 5 Étape 1 : Rechercher les mises à jour 5 Étape 2 : Préparer
Plus en détailPIC EVAL Dev Board PIC18F97J60
PIC EVAL Dev Board PIC18F97J60 2 TP1 : Prise en main de l environnement de programmation pour la carte PIC EVAL-ANFA Pour répondre aux questions et justifier vos réponses, vous pouvez faire des copies
Plus en détailEVOLUTION 7.1 Déroulement DREAM INFO 1 Dossier 23 Ciel Gestion Commerciale.
1. Mission 1 : Créer la société et faire son paramétrage :...3 1.1. Création d un nouveau dossier :...3 1.2. Paramétrage des Barres d outils :...6 1.3. Paramétrage général de la Gestion Commerciale :...6
Plus en détailwxwidgets dans un environnement Microsoft Windows
1/18 wxwidgets dans un environnement Microsoft Windows Ce document explique les démarches à suivre pour pouvoir utiliser «wxwidgets» à travers un environnement de développement. Normalement c est ce que
Plus en détailMode Opératoire Ciel Gestion commerciale V 12 et s (2006)
1/6 09/05/2006-18:44:31 Mode Opératoire Ciel Gestion commerciale V 12 et s (2006) C. Terrier Reproduction autorisée pour des formateurs dans un cadre pédagogique et non commercial après autorisation de
Plus en détailIntroduction au Système d Exploitation Unix/Linux
1 iere partie: Système de Gestion de Fichier B. Jacob IC2/LIUM 17 septembre 2013 Plan 1 Notions de fichier 2 Notions de répertoire 3 Organisation des répertoires 4 Identification d un fichier dans l arborescence
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étailBon ben voilà c est fait!
Bon ben voilà c est fait! Au programme : - Exploration de l arborescence et informations systèmes - Action sur les dossiers et fichiers - Gestion des autorisations - Conversion pdf en text - Connexion
Plus en détailApprendre Java et C++ avec NetBeans
E Apprendre Java et C++ avec NetBeans Généralités Est-ce le titre d un nouvel ouvrage? Pourquoi pas! NetBeans fait son apparition dans cette édition car un module, permettant d éditer et de compiler du
Plus en détailFiche de version N 12.28a Nov. 2010 SOMMAIRE
Fiche de version N 12.28a Nov. 2010 Lisez entièrement ce document Effectuez une sauvegarde de vos bases avant toute autre action Auteur : Bertrand Dereau Fonction : Chef de produit Réf. du document : EXP_FDV_PERCEVAL
Plus en détailIntroduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn
Introduction à Linux (pour le HPC) «Linux 101» Présentation : http://goo.gl/bvfyn maxime.boissonneault@calculquebec.ca U. Laval - Mars 2013 1 2 Plan de la présentation 1.Accéder à une grappe 2.Fichiers
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étailIFT2245 - Systèmes d exploitation - TP n 1-20%
IFT2245 - Systèmes d exploitation - TP n 1-20% DIRO - Université de Montréal Nicolas Rous et Dorian Gomez Disponible : 14/02/2013 - Remise : 28/03/2013 au début de la démo LISEZ TOUT LE DOCUMENT AVANT
Plus en détailCours 14 Les fichiers
Cours 14 Les fichiers F. Gayral 1 Fichier : définition /media/travaux/documents/fgenseignement/java1/courstpsfgfc/14-fichiers/voirtypefichiers Fichier = ensemble d informations codées et stockées sur une
Plus en détailIntroduction aux Systèmes et aux Réseaux, Master 2 CCI
aux Systèmes et aux Réseaux, Master 2 CCI Cours 1 : Introduction et contexte Unix/Linux Laure Gonnord http://laure.gonnord.org/pro/teaching/ Laure.Gonnord@univ-lyon1.fr Master CCI - Université Lyon 1 -
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étailArchivage des pièces comptables
SITEL Archivage des pièces comptables Documentation utilisateurs (comptables) Service informatique et télématique E-mail: hotline.sitel@unine.ch Téléphone : +41 32 718 20 10 www.unine.ch/sitel Historique
Plus en détailProjet d informatique M1BI : Compression et décompression de texte. 1 Généralités sur la compression/décompression de texte
Projet d informatique M1BI : Compression et décompression de texte Le but de ce projet est de coder un programme réalisant de la compression et décompression de texte. On se proposera de coder deux algorithmes
Plus en détailAlgorithmique et programmation : les bases (VBA) Corrigé
PAD INPT ALGORITHMIQUE ET PROGRAMMATION 1 Cours VBA, Semaine 1 mai juin 2006 Corrigé Résumé Ce document décrit l écriture dans le langage VBA des éléments vus en algorithmique. Table des matières 1 Pourquoi
Plus en détailTp 1 correction. Structures de données (IF2)
Tp 1 correction Structures de données (IF2) Remarque générale : compilez et exécutez le code au-fur-et-à mesure de son écriture. Il est plus facile de corriger une petite portion de code délimitée que
Plus en détailInitiation. àl algorithmique et à la programmation. en C
Initiation àl algorithmique et à la programmation en C Initiation àl algorithmique et à la programmation en C Cours avec 129 exercices corrigés Illustration de couverture : alwyncooper - istock.com Dunod,
Plus en détailTME1 Installation et programmation en ILP1
UFR 919 Informatique Master Informatique Spécialité STL UE MI016 ILP TME1 Installation et programmation en ILP1 Christian Queinnec La séance est divisée en deux parties. Dans la première, vous installerez
Plus en détailIntroduction à l algorithmique et à la programmation M1102 CM n 3
Introduction à l algorithmique et à la programmation M1102 CM n 3 DUT Informatique 1 re année Eric REMY eric.remy@univ-amu.fr IUT d Aix-Marseille, site d Arles Version du 2 octobre 2013 E. Remy (IUT 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é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étail03/04/2007. Tâche 1 Tâche 2 Tâche 3. Système Unix. Time sharing
3/4/27 Programmation Avancée Multimédia Multithreading Benoît Piranda Équipe SISAR Université de Marne La Vallée Besoin Programmes à traitements simultanés Réseau Réseau Afficher une animation en temps
Plus en détailUnix/Linux I. 1 ere année DUT. Université marne la vallée
Unix/Linux I 1 ere année DUT Université marne la vallée 1 Introduction 2 Fonctions et spécifité d Unix Architecture 3 4 5 Fichier Unix Arborescence de fichiers Quelques commandes sur les fichiers Chemins
Plus en détailModule Communication - Messagerie V6. Infostance. Messagerie
1 Infostance Messagerie 2 Table des matières Les droits... 3 La boîte de réception... 4 Fonctionnalités disponibles via le clic droit sur un message... 6 Ecrire un nouveau message... 7 Présentation...
Plus en détailMICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C
Haute Ecole d Ingénierie et de Gestion Du Canton du Vaud MICROINFORMATIQUE NOTE D APPLICATION 1 (REV. 2011) ARITHMETIQUE EN ASSEMBLEUR ET EN C Programmation en mode simulation 1. DOCUMENTS DE RÉFÉRENCE...
Plus en détailCours Programmation Système
Cours Programmation Système Filière SMI Semestre S6 El Mostafa DAOUDI Département de Mathématiques et d Informatique, Faculté des Sciences Université Mohammed Premier Oujda m.daoudi@fso.ump.ma Février
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étailDébogage de code* Mardi 13 décembre 2011. Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC. hpc.unistra.
Débogage de code* Mardi 13 décembre 2011 Romaric DAVID david@unistra.fr Université de Strasbourg - Direction Informatique Pôle HPC *ou l'art de chercher la petite bête Plan Introduction Débogage, quelques
Plus en détailADAPT: 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étailProgrammation C. J.-F. Lalande. 15 novembre 2012
Programmation C J.-F. Lalande novembre 0 Ce cours est mis à disposition par Jean-François Lalande selon les termes de la licence Creative Commons Attribution - Pas d Utilisation Commerciale - Partage à
Plus en détailCOMMUNICATION PC/MINITEL
229 Cet article fait suite à ceux publiés dans les bulletins de l'epi n 47 page 207 et 48 page 205. Si vous avez réussi à construire un câble de liaison, vous vous êtes peut être demandé comment vous en
Plus en détail2 Grad Info Soir Langage C++ Juin 2007. Projet BANQUE
2 Grad Info Soir Langage C++ Juin 2007 Projet BANQUE 1. Explications L'examen comprend un projet à réaliser à domicile et à documenter : - structure des données, - objets utilisés, - relations de dépendance
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étailIntroduction à l informatique en BCPST
Introduction à l informatique en BCPST Alexandre Benoit BCPST L informatique en BCPST «L enseignement de l informatique en classes préparatoires de la filière BCPST a pour objectif d introduire puis de
Plus en détail