La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

5/10/2004 P. Van Roy, InfoT4, S3 1 Informatique T4 (FSAC1450) Introduction et Concepts de Base Peter Van Roy Département dIngénierie Informatique, UCL.

Présentations similaires


Présentation au sujet: "5/10/2004 P. Van Roy, InfoT4, S3 1 Informatique T4 (FSAC1450) Introduction et Concepts de Base Peter Van Roy Département dIngénierie Informatique, UCL."— Transcription de la présentation:

1 5/10/2004 P. Van Roy, InfoT4, S3 1 Informatique T4 (FSAC1450) Introduction et Concepts de Base Peter Van Roy Département dIngénierie Informatique, UCL Transparents inspirés par Christian Schulte et Seif Haridi

2 5/10/2004P. Van Roy, InfoT4, S32 Résumé du premier cours Organisation du cours Résumé du cours Introduction aux concepts de base

3 5/10/2004 P. Van Roy, InfoT4, S3 3 Organisation du cours

4 5/10/2004P. Van Roy, InfoT4, S34 Informatique T4 (FSA 1450) Six tranches de matière, une par semaine Dans chaque tranche: Un cours magistral pour introduire les concepts Deux séances pratiques pour maîtriser les concepts: une pour démarrer le travail personnel, une pour le feedback Entre les deux: du travail personnel et en petits groupes Evaluation Deux piliers: la pratique (écrire des programmes) et la théorie (définition précise des concepts, sémantique) Premier test en Semaine 5 (18 octobre), 1/3 des points Examen à la fin en Semaine 11 (1 décembre), 2/3 des points

5 5/10/2004P. Van Roy, InfoT4, S35 Equipe Titulaire: Peter Van Roy Assistants: Raphaël Collet Isabelle Dony Boris Mejias Luis Quesada Etudiants/moniteurs Sylvain Bouillon David Coupez Arnaud Dagnelies Xavier Declercq Damien Saucez Anh Tuan Tang Mac

6 5/10/2004P. Van Roy, InfoT4, S36 Structure des séances magistrales Rappel de la dernière séance Résumé de ce quon va voir Contenu Résumé de ce quon a vu Suggestions pour la lecture

7 5/10/2004P. Van Roy, InfoT4, S37 Matière Cours basé sur le livre Concepts, Techniques, and Models of Computer Programming, MIT Press, 2004 Disponibilité A la DUC (conseillé) A la BSE (si vous ne voulez pas acheter le livre) Informations sur les TPs et des informations supplémentaires disponibles à:

8 5/10/2004P. Van Roy, InfoT4, S38 Suggestions de lecture pour le premier cours Transparents sur le site Web du cours Dans le livre Chapitre 1 (1.1, 1.2, 1.3) - Introduction aux concepts de base Chapitre 2 (2.1) - Définition des langages de programmation Chapitre 2 (2.3) - Langage de base Chapitre 2 (2.4.1) - Concepts de base (identificateurs, variables, environnement, portée, fonctions et procédures)

9 5/10/2004P. Van Roy, InfoT4, S39 Séances pratiques Buts Apprendre la pratique de la programmation Répéter la matière des cours magistraux Répondre aux questions sur la matière Approfondir votre compréhension Exercices et problèmes Comprendre les concepts et les mettre en pratique Les encadrants vous aideront à trouver les réponses; ils ne donneront pas les réponses eux-mêmes! Une bonne préparation pour les tests!

10 5/10/2004P. Van Roy, InfoT4, S310 Environnement de programmation Langage:Oz Système: Mozart Éditeur:Emacs Système interactif Disponible sur linfrastructure FSA, sous Linux et Windows Vous pouvez linstaller sur vos ordinateurs personnels Si vous avez un ordinateur portable, vous pouvez déjà installer Mozart avant les séances pratiques

11 5/10/2004P. Van Roy, InfoT4, S311 Des commentaires et suggestions sont bienvenus! Sur la structure ou le contenu du cours Vous êtes un peu des cobayes Nhésitez pas à contacter un encadrant Vous pouvez me contacter, mais avec un rendezvous sil vous plaît! Par Par téléphone:

12 5/10/2004P. Van Roy, InfoT4, S312 Questions et freins! Posez des questions quand ce nest pas clair Pour répéter une explication Pour donner une meilleure explication Pour donner un exemple Dites-moi quand je vais trop vite! Dites-moi quand je vais trop lentement!

13 5/10/2004 P. Van Roy, InfoT4, S3 13 Résumé du cours

14 5/10/2004P. Van Roy, InfoT4, S314 Objectif du cours 1. La programmation fonctionnelle (3 semaines) Un programme est une fonction mathématique La base de tous les autres modèles (paradigmes) de la programmation 2. La sémantique formelle des langages (1 semaine) On ne peut pas maîtriser ce quon ne comprend pas 3. Labstraction de données (2 semaines) Partitionner un problème pour maîtriser la complexité Les deux approches: objets et types abstraits Donner une introduction à la discipline de la programmation, en trois thèmes:

15 5/10/2004P. Van Roy, InfoT4, S315 Il y a beaucoup de manières de programmer un ordinateur! Programmation déclarative Programmation fonctionnelle ou programmation logique Programmation concurrente Par échange de messages ou par données partagées Programmation avec état Programmation orienté-objet

16 5/10/2004P. Van Roy, InfoT4, S316 Modèles de programmation (paradigmes) Mettre ensemble Des types de données et leurs opérations Un langage pour écrire des programmes Chaque modèle/paradigme permet dautres techniques de programmation Les paradigmes sont complémentaires Le terme paradigme de programmation Très utilisé dans le monde commercial; attention au sens (buzzword)!

17 5/10/2004P. Van Roy, InfoT4, S317 Langages de programmation Différents langages soutiennent différents modèles/paradigmes Java: programmation orienté-objet Haskell: programmation fonctionnelle Erlang: programmation concurrente pour systèmes fiables Prolog: programmation logique … Nous voudrions étudier plusieurs paradigmes! Est-ce quon doit étudier plusieurs langages? Nouvelle syntaxe… Nouvelle sémantique… Nouveau logiciel…

18 5/10/2004P. Van Roy, InfoT4, S318 La solution pragmatique… Un seul langage de programmation Qui soutient plusieurs modèles de programmation Parfois appelé un langage multi-paradigme Notre choix est Oz Soutient ce quon voit dans le cours, et plus encore Laccent sera mis sur Les modèles de programmation! Les techniques et les concepts! Pas le langage en soi!

19 5/10/2004P. Van Roy, InfoT4, S319 Comment présenter plusieurs modèles de programmation? Basé sur un langage noyau Un langage simple Un petit nombre de concepts significatifs Buts: simple, minimaliste Langage plus riche au dessus du langage noyau Exprimé en le traduisant vers le langage noyau But: soutenir la programmation pratique

20 5/10/2004P. Van Roy, InfoT4, S320 Approche incrémental Commencer par un langage noyau simple Programmation déclarative Ajouter des concepts Pour obtenir les autres modèles de programmation Très peu de concepts! Très peu à comprendre! En FSA1450 nous ne verrons que quelques modèles, vu la taille limitée du cours Les autres modèles peuvent être vus en année technique (ou cours à option) ou en lisant plus loin dans le livre

21 5/10/2004P. Van Roy, InfoT4, S321 Les modèles que vous connaissez! Vous connaissez tous le langage Java, qui soutient La programmation avec état La programmation orienté-objet Cest clair que ces deux modèles sont importants!

22 5/10/2004P. Van Roy, InfoT4, S322 Pourquoi les autres modèles? Un nouveau modèle quon verra dans ce cours Programmation déclarative (fonctionnelle) Dautres modèles pas vu dans ce cours Programmation concurrente (dataflow, échange de messages, données partagées) Programmation logique (déterministe et nondéterministe) Programmation par contraintes … Est-ce que tous ces modèles sont importants? Bien sûr! Ils sont importants dans beaucoup de cas, par exemple pour les systèmes complexes, les systèmes multi-agents, les systèmes à grande taille, les systèmes à haute disponibilité, etc. On reviendra sur ce point plusieurs fois dans le cours

23 5/10/2004P. Van Roy, InfoT4, S323 Notre premier modèle La programmation déclarative On peut la considérer comme la base de tous les autres modèles Approche Introduction informelle aux concepts et techniques importants, avec exemples interactifs Introduction au langage noyau Sémantique formelle basée sur le langage noyau Étude des techniques de programmation, surtout la récursion (sur entiers et sur listes)

24 5/10/2004P. Van Roy, InfoT4, S324 La programmation déclarative Lidéal de la programmation déclarative Dire uniquement ce que vous voulez calculez Laissez lordinateur trouvez comment le calculer De façon plus pragmatique Demandez plus de soutien de lordinateur Libérez le programmeur dune partie du travail

25 5/10/2004P. Van Roy, InfoT4, S325 Propriétés du modèle déclaratif Un programme est une fonction au sens mathématique Un calcul est lévaluation dune fonction sur des arguments qui sont des structures de données Très utilisé Langages fonctionnels: LISP, Scheme, ML, Haskell, … Langages logiques: Prolog, Mercury, … Langages de représentation: XML, XSL, … Programmation sans état Aucune mise à jour des structures de données! Permet la simplicité

26 5/10/2004P. Van Roy, InfoT4, S326 Lutilité du modèle déclaratif Propriété clé: Un programme qui marche aujourdhui, marchera demain Les fonctions ne changent pas de comportement, les variables ne changent pas daffectation Un style de programmation qui est à encourager dans tous les langages Stateless server dans un contexte client/server Stateless component Pour comprendre ce style, nous utilisons le modèle déclaratif! Tous les programmes dans ce modèle sont ipso facto déclaratif: une excellent manière de lapprendre

27 5/10/2004 P. Van Roy, InfoT4, S3 27 Introduction aux Concepts de Base

28 5/10/2004P. Van Roy, InfoT4, S328 Un langage de programmation Réalise un modèle de programmation Peut décrire des programmes Avec des instructions Pour calculer avec des valeurs Regardons de plus près instructions valeurs

29 5/10/2004P. Van Roy, InfoT4, S329 Système interactif Sélectionner la région dans le buffer Emacs Donner la région sélectionnée au système La région est compilée La région compilée est exécutée Système interactif: à utiliser comme une calculatrice Essayez vous-même après ce cours! declare X = 1234 * 5678 {Browse X}

30 5/10/2004P. Van Roy, InfoT4, S330 Système interactif: Quest-ce qui se passe? Déclarer (créer) une variable désignée par X Affecter à la variable la valeur Obtenu en faisant le calcul 1234*5678 Appliquer la procédure Browse à la valeur désignée par X Fait apparaître une fenêtre qui montre declare X = 1234 * 5678 {Browse X}

31 5/10/2004P. Van Roy, InfoT4, S331 Variables Des raccourcis pour des valeurs Peuvent être affectées une fois au plus Sont dynamiquement typées En Java elles sont statiquement typées Attention: il y a deux concepts cachés ici! Lidentificateur: le nom que vous tapez sur le clavier une chaine de caractères qui commence avec une majuscule Var, A, X123, OnlyIfFirstIsCapital La variable en mémoire: une partie de la mémoire du système initialement, une boîte vide

32 5/10/2004P. Van Roy, InfoT4, S332 Déclaration dune variable Instruction declare ( statement) Crée une nouvelle variable en mémoire Fait le lien entre lidentificateur X et la variable en mémoire Troisième concept: lenvironnement Une fonction des identificateurs vers les variables Fait la correspondance entre chaque identificateur et une variable (et donc sa valeur aussi) Le même identificateur peut correspondre à différentes variables en différents endroits du programme! declare X = …

33 5/10/2004P. Van Roy, InfoT4, S333 Affectation Laffectation prend une variable en mémoire et la lie avec une valeur Dans le texte dun programme, laffectation est exprimée avec les identificateurs! Après laffectation X=42, la variable qui correspond à lidentificateur X sera liée à 42 declare X = 42

34 5/10/2004P. Van Roy, InfoT4, S334 Affectation unique Une variable ne peut être affectée quà une seule valeur On dit: variable à affectation unique Pourquoi? Parce que nous sommes en modèle déclaratif! Affectation incompatible: lever une erreur X = 43 Affectation compatible: ne rien faire X = 42

35 5/10/2004P. Van Roy, InfoT4, S335 La redéclaration dune variable (en fait: dun identificateur!) Un identificateur peut être redéclaré Ça marche parce quil sagit des variables en mémoire différentes! Les deux occurrences de lidentificateur correspondent à des variables en mémoire différentes. Lenvironnement interactif ne gardera que la dernière variable Ici, X correspondera à 11 declare X = 42 declare X = 11

36 5/10/2004P. Van Roy, InfoT4, S336 La portée dun identificateur Linstruction local X in end déclare X qui existera entre in et end La portée dun identificateur est la partie dun programme pour laquelle cet identificateur correspond à la même variable en mémoire. (Si la portée est déterminée par une inspection du code dun programme, elle sappelle portée lexicale ou portée statique.) Pourquoi il ny a pas de conflit entre X=42 et X=11? Le troisième Browse affichera quoi? local X in X = 42 {Browse X} local X in X = 11 {Browse X} end {Browse X} end

37 5/10/2004P. Van Roy, InfoT4, S337 Structures de données (valeurs) Structures de données simples Entiers 42, ~1, 0 Notez (!): ~ pour entier négatif Virgule flottante 1.01, 3.14 Atomes (constantes) foo, Paul, nil Structures de données composées Listes Tuples, records (enregistrements) Dans ce cours on utilisera principalement les entiers et les listes

38 5/10/2004P. Van Roy, InfoT4, S338 Fonctions Définir une fonction Donner une instruction qui définit ce que doit faire la fonction Appliquer une fonction Utiliser la fonction pour faire un calcul selon sa définition On dit aussi: appeler une fonction

39 5/10/2004P. Van Roy, InfoT4, S339 Notre première fonction Pour calculer la négation dun entier Prend un argument:lentier Rend une valeur:la négation de lentier En notation mathématique: Integer minus: n | ~n

40 5/10/2004P. Van Roy, InfoT4, S340 La définition de la fonction Minus Lidentificateur Minus sera lié à la fonction Déclarer une variable qui est liée à lidentificateur Minus Affecter cette variable à la fonction en mémoire La portée de largument X est le corps de la fonction declare fun {Minus X} ~X end

41 5/10/2004P. Van Roy, InfoT4, S341 Lapplication de la fonction Minus Y est affecté à la valeur calculée par lapplication de Minus à largument ~42 declare Y = {Minus ~42} {Browse Y}

42 5/10/2004P. Van Roy, InfoT4, S342 Syntaxe Définition dune fonction fun { Identificateur Arguments } corps de la fonction end Application dune fonction X = { Identificateur Arguments }

43 5/10/2004P. Van Roy, InfoT4, S343 Fonction de Maximum Calculer le maximum de deux entiers Prend deux arguments:entiers Rend une valeur:lentier le plus grand En notation mathématique: Integer x Integer Integer max: n, m | n,n>m m,otherwise

44 5/10/2004P. Van Roy, InfoT4, S344 Définition de la fonction Max declare fun {Max X Y} if X>Y then X else Y end Nouvelle instruction: conditionnel (if-then-else)

45 5/10/2004P. Van Roy, InfoT4, S345 Application de la fonction Max declare X = {Max 42 11} Y = {Max X 102} {Browse Y}

46 5/10/2004P. Van Roy, InfoT4, S346 Maintenant le Minimum Une possibilité: couper et coller Répéter ce quon a fait pour Max Mieux: la composition de fonctions Reutiliser ce quon a fait avant Cest une bonne idée de reutiliser des fonctions compliquées Pour le minimum de deux entiers: min(n,m) = ~max(~n,~m)

47 5/10/2004P. Van Roy, InfoT4, S347 Définition de la fonction Min declare fun {Min X Y} {Minus {Max {Minus X} {Minus Y}}} end

48 5/10/2004P. Van Roy, InfoT4, S348 Définition de la fonction Min (avec ~) declare fun {Min X Y} ~{Max ~X ~Y} end

49 5/10/2004P. Van Roy, InfoT4, S349 Définition inductive dune fonction Fonction de factoriellen! La définition inductive est 0!=1 n!=n * ((n-1)!) Programmer ceci en tant que fonction Fact Comment procéder? Utiliser lapplication récursive de Fact!

50 5/10/2004P. Van Roy, InfoT4, S350 Définition de la fonction Fact fun {Fact N} if N==0 then % Test dégalité 1 else N * {Fact N-1} % Appel récursif end

51 5/10/2004P. Van Roy, InfoT4, S351 Récursion Structure générale Cas de base Cas récursif Pour un nombre naturel n, souvent: Cas de base:n est zéro Cas récursif:n est différent de zéro n est plus grand que zéro Beaucoup plus: la semaine prochaine!

52 5/10/2004P. Van Roy, InfoT4, S352 Une fonction est un cas particulier dune procédure Le concept général est la procédure Une fonction est une procédure avec un argument en plus, qui est utilisée pour rendre le résultat Z={Max X Y} (fonction Max) correspond à: {Max X Y Z} (procédure Max, avec argument de plus)

53 5/10/2004P. Van Roy, InfoT4, S353 Résumé Système interactif Variables Déclaration Affectation unique Identificateur Variable en mémoire Environnement Portée dune variable Structures de données Entiers Fonctions Définition Appel (application) Récursion

54 5/10/2004P. Van Roy, InfoT4, S354 A la prochaine fois! Exceptionnellement, cette semaine les séances pratiques seront dans les salles machine A demain (mercredi) donc, dans les salles CANDIX, DAO, IAO! Cette semaine, jattends de vous que vous vous familiarisez avec le logiciel Mozart et son environnement Vous pouvez déjà regarder lénoncé du premier TP sur le Web Je vous conseille dinstaller Mozart chez vous!


Télécharger ppt "5/10/2004 P. Van Roy, InfoT4, S3 1 Informatique T4 (FSAC1450) Introduction et Concepts de Base Peter Van Roy Département dIngénierie Informatique, UCL."

Présentations similaires


Annonces Google