Python Functional Programming: Study of List Comprehensions and Lambda Functions Performance and Change-Proneness Risk

François Philippe Ossim Belias

Mémoire de maîtrise (2022)

Accéder à ce document
Disponible
Libre accès au texte intégral dans PolyPublie
Texte Texte • 1MB •

Résumé

Python est un langage de programmation populaire et sa popularité gagne du terrain dans de nombreux secteurs informatiques différents tels que l’apprentissage automatique, l’analyse de données, etc. De nos jours, c’est le langage de programmation standard d’apprentissage automatique. La popularité de Python s’explique en partie par sa syntaxe proche de l’anglais, son niveau d’abstraction et les structures de données disponibles facilitant la tâche pour implémenter rapidement des idées abstraites au moyen d’un vaste écosystème de modules et de bibliothèques. Les fonctionnalités Python permettent de mettre en œuvre des idées plus efficacement et plus rapidement, souvent en utilisant moins de lignes de code [1] par rapport aux autres langages. De plus, bien qu’il s’agisse d’un langage interprété, les performances sont acceptables dans la plupart des cas où le temps n’est pas la contrainte la plus stricte. Python est un langage multi-paradigme et l’une de ses fonctionnalités populaires, utilisée par de nombreux programmeurs, est la programmation fonctionnelle. Ce dernier, même s’il peut avoir quelques effets indésirables, offre plusieurs avantages aux programmeurs comme une meilleure parallélisation et même parfois une meilleure compréhensibilité [2]. Ce projet se concentre sur deux constructions de programmation fonctionnelle en Python qui sont la compréhension de liste et les fonctions lambda. Il y a plusieurs objectifs. Pre- mièrement et avant tout, développez un petit ensemble de règles pour transformer les com- préhensions de liste (programmation fonctionnelle) en constructions équivalentes basées sur des boucles for et vice-versa. Ces règles doivent être suffisamment générales pour garantir que la plupart des compréhensions de liste sont correctement transformées. Une fois les règles développées, un deuxième objectif est de comparer et de contraster les performances, c’est- à-dire de vérifier si la compréhension des listes est effectivement plus rapide. Pour vérifier les performances, plusieurs étapes ont été effectuées. La comparaison entre la compréhension de liste et les boucles for a été effectuée en exécutant des fragments de code équivalents de 10 000 et 100 000 itérations. L’expérience a été reproduite 30 fois, les résultats collectés et analysés statistiquement à l’aide de la méthode du Cliff delta. Les résultats montrent qu’il est préférable d’utiliser la compréhension de liste plutôt que les boucles for lorsqu’il s’agit d’exécuter un code avec un grand nombre d’itérations.

Programme:
Génie informatique
Directeurs ou directrices:
Adresse URL de PolyPublie:
Université/École:
Polytechnique Montréal
OAI:
oai:publications.polymtl.ca:10764
ORCID
Date du dépôt:
17 juil. 2023 11:43
Dernière modification:
14 oct. 2026 11:10
Citer en APA 7:
Ossim Belias, F. P. (2022). Python Functional Programming: Study of List Comprehensions and Lambda Functions Performance and Change-Proneness Risk [Mémoire de maîtrise, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/10764/

Statistiques

Total des téléchargements à partir de PolyPublie

Téléchargements par année

Provenance des téléchargements

Actions réservées au personnel

Afficher document
Afficher document