Université de Constantine 2 Faculté des NTIC Département des TLSI Dimanche 20 A
Université de Constantine 2 Faculté des NTIC Département des TLSI Dimanche 20 Avril 2013 Master1 Génie Logiciel PP: Paradigmes de Programmation Contrôle de Courte Durée VARIANTE B Durée 1h, Documents non autorisés Question No 1 (6 Points) : Répondre très succinctement aux questions suivantes 1- Comment sont exprimées les expressions symboliques dans le langage LISP à l'intérieur de la mémoire et à l'extérieur Une expression en LISP est représentée sous forme d’un arbre binaire (expression symbolique avec deux parties : partie gauche représentant le 1er élément de la liste et la partie droite représentant le reste), afin de faciliter la représentation, le parcours et l’accès à n’importe quel élément de l’expression symbolique. On peut exprimer n’importe quelle liste sous forme d’une expression symbolique 2- Comment la programmation fonctionnelle permet d'éviter les effets de bords Elle évalue des fonctions sans états. Elle n'utilise ni variable, ni affectation. Elle rejette le changement d'état et la mutation des données. 3- Pourquoi on recommande aux programmeurs d'éviter l'utilisation des variables globales On recommande aux programmes d'éviter l'usage des variables globales afin de prévenir les effets de bord (side effects) : les sous-programmes utilisent donc des variables locales et agir sur des arguments fournis explicitement en paramètre, par valeur (leur contenu) ou par référence (l'adresse de ce contenu). Ces techniques aident à créer des petits morceaux de code, faciles à comprendre isolément et sans nécessité d'avoir à en connaître le contexte 4- Indiquer comment la programmation logique voit un programme Un programme peut être vu comme une expression logique à évaluer Question 2 (10 Pts) A- Ecrire une fonction APPEND qui permet de concaténer deux listes (6 Pts) Exemples: (append ’(a b) ’(c d))= (a b c d), (append ’() ’(a b))= (a b) (defun list-append (L1 L2) "Append L1 by L2." (if (null L1) L2 (cons (CAR L1) (list-append (CDR L1) L2)))) B- Ecrire une fonction LISP qui permet de tester si un élément ‘a’ appartient ou non à une liste L. (4 Pts) Question 3 (4 Pts) Donner le résultat des expressions suivantes en LISP > (cons ’a (cons ’b (cons ’c ’()))) (a b c) > (car (cons ’a ’(b c))) a > ’(a b c) (a b c) > (atom ’(atom ’a)) NIL BONNE CHANCE uploads/s3/ controle-de-courte-duree-2013-2.pdf
Documents similaires










-
32
-
0
-
0
Licence et utilisation
Gratuit pour un usage personnel Attribution requise- Détails
- Publié le Jui 24, 2022
- Catégorie Creative Arts / Ar...
- Langue French
- Taille du fichier 0.0568MB