Difference between revisions of "Publications/valais.18.seminar/fr"

From LRDE

(Created page with "{{CSIReportFR | authors = Leo Valais | titre = SUBTYPEP: Une Implémentation de l'Algorithme de Baker | year = 2018 | number = 1810 | resume = Le langage Common Lisp fournit u...")
 
Line 4: Line 4:
 
| year = 2018
 
| year = 2018
 
| number = 1810
 
| number = 1810
| resume = Le langage Common Lisp fournit un prédicat, SUBTYPEP, qui permet d'introspecter la relation de sous-typage. Dans certaines situations, étant donné le système de typage du langageil est impossible de déterminer si un type est un sous-type d'un autre sans en énumérer tous les éléments, possiblement en nombre infini. À cause de cela, SUBTYPEP est autorisé à retourner deux valeurs (NIL, NIL), indiquant qu'il n'a pas pu trouver de réponse. Les implémentations de cette fonction ont trop souvent tendance à ne pas répondre, même dans des situations où c'est théoriquement possible. Ce comportement abusif peut alors empêcher certaines optimisations potentielles du compilateur, voire même rendre l'implémentation non conforme au standard. Dans son article << A Decision Procedure for Common Lisp's SUBTYPEP Predicate >>Henry Baker propose un algorithme qu'il prétend plus précis et plus performant que l'implémentation moyenne de SUBTYPEP. Dans ce rapport nous présentons une implémentation partielle de l'algorithme de Baker, nous exposons certains aspects techniques, nous présentons une étude des performances et enfin nous comparons l'acuité des différentes implémentations du prédicat.
+
| resume = Le langage Common Lisp fournit un prédicat, SUBTYPEP, qui permet d'introspecter la relation de sous-typage. Dans certaines situations, étant donné le système de typage du langageil est impossible de déterminer si un type est un sous-type d'un autre sans en énumérer tous les éléments, possiblement en nombre infini. À cause de cela, SUBTYPEP est autorisé à retourner deux valeurs (NIL, NIL), indiquant qu'il n'a pas pu trouver de réponse. Les implémentations de cette fonction ont trop souvent tendance à ne pas répondre, même dans des situations où c'est théoriquement possible. Ce comportement abusif peut alors empêcher certaines optimisations potentielles du compilateur, voire même rendre l'implémentation non conforme au standard. Dans son article og A Decision Procedure for Common Lisp's SUBTYPEP Predicate fgHenry Baker propose un algorithme qu'il prétend plus précis et plus performant que l'implémentation moyenne de SUBTYPEP. Dans ce rapport nous présentons une implémentation partielle de l'algorithme de Baker, nous exposons certains aspects techniques, nous présentons une étude des performances et enfin nous comparons l'acuité des différentes implémentations du prédicat.
 
| type = techreport
 
| type = techreport
 
| id = valais.18.seminar
 
| id = valais.18.seminar

Revision as of 17:09, 19 June 2018

Résumé

Le langage Common Lisp fournit un prédicat, SUBTYPEP, qui permet d'introspecter la relation de sous-typage. Dans certaines situations, étant donné le système de typage du langageil est impossible de déterminer si un type est un sous-type d'un autre sans en énumérer tous les éléments, possiblement en nombre infini. À cause de cela, SUBTYPEP est autorisé à retourner deux valeurs (NIL, NIL), indiquant qu'il n'a pas pu trouver de réponse. Les implémentations de cette fonction ont trop souvent tendance à ne pas répondre, même dans des situations où c'est théoriquement possible. Ce comportement abusif peut alors empêcher certaines optimisations potentielles du compilateur, voire même rendre l'implémentation non conforme au standard. Dans son article og A Decision Procedure for Common Lisp's SUBTYPEP Predicate fgHenry Baker propose un algorithme qu'il prétend plus précis et plus performant que l'implémentation moyenne de SUBTYPEP. Dans ce rapport nous présentons une implémentation partielle de l'algorithme de Baker, nous exposons certains aspects techniques, nous présentons une étude des performances et enfin nous comparons l'acuité des différentes implémentations du prédicat.