<  Retour au portail Polytechnique Montréal

The Effect of Pythonic Constructs on the Software Development Process

Cyrine Zid

Thèse de doctorat (2024)

[img] Accès restreint: Personnel autorisé jusqu'au 22 août 2025
Conditions d'utilisation: Tous droits réservés
Afficher le résumé
Cacher le résumé

Résumé

Dans un paysage en constante évolution de la technologie de l’information, le langage de programmation Python a émergé comme un acteur central, façonnant divers secteurs tels que l’apprentissage automatique et la science des données. La montée rapide de la popularité de Python repose sur ses qualités intrinsèques, une combinaison de polyvalence, de lisibilité et de structure. En tant que langage de choix pour de nombreux développeurs, Python joue un rôle crucial dans la résolution de défis complexes et la création de solutions innovantes. Cependant, cette utilisation répandue de Python soulève des questions critiques sur son efficacité, en particulier en ce qui concerne les caractéristiques fonctionnelles de Python. Les fonctions lambda, les compréhensions de liste et d’autres mécanismes fonctionnels offrent des avantages indéniables, tels que la clarté du code et une approche de programmation élégante. Néanmoins, l’adoption de ces constructions n’est pas sans conséquence, et des nuances liées à leur compréhensibilité, à leur impact sur les performances et à leur tendance à induire plus de corrections méritent une analyse approfondie. C’est dans ce contexte que cette thèse se situe. Organisé en huit chapitres, ce travail comprend une introduction et une revue de littérature contextualisant cette thèse dans le domaine plus large de la compréhension des programmes, de l’évolution des logiciels et de la programmation fonctionnelle. Il explore également les constructions spécifiques à Python et les études connexes sur la compréhension des programmes, les modifications induisant des corrections et les performances de Python. Le chapitre sur les connaissances préalables fournit des détails utiles pour rendre ce travail autonome et facile à lire.

Abstract

In the ever-evolving landscape of information technology, Python has firmly established itself as a central programming language, wielding significant influence in areas such as machine learning and data science. Its widespread adoption is attributed to its versatility, readability, and structural qualities. As the language of choice for many developers, Python plays a central role in solving complex challenges and creating innovative solutions. However, questions persist regarding Python’s effectiveness, particularly concerning its functional features, such as lambda functions and list comprehensions. The focal points include Python functional constructs such as list comprehensions, dictionary comprehensions, set comprehensions, lambdas, and higher-order functions. Within this exploration, we introduce a research hypothesis: To what extent do Pythonic functional constructs impact code understandability and fault proneness, and how do these aspects vary across the different constructs under study? The research includes a detailed exploration of Pythonic concepts, considering factors such as bug-proneness and performance impact. By focusing on the comprehensibility of Python’s functional constructs through a controlled experiment we report evidence that functional constructs are not always the best choice. Indeed, our results provide insights into ease of modification and perceived readability compared to procedural alternatives. Following that, this thesis investigates the effect of complexity on Python’s functional constructs. The reported empirical study analyzing the revision history of 200 open-source Python projects reveals that modifications to functional constructs often lead to bug fixes and that complexity plays a role.

Département: Département de génie informatique et génie logiciel
Programme: Génie informatique
Directeurs ou directrices: Foutse Khomh et Giuliano Antoniol
URL de PolyPublie: https://publications.polymtl.ca/58321/
Université/École: Polytechnique Montréal
Date du dépôt: 22 août 2024 10:37
Dernière modification: 25 sept. 2024 16:50
Citer en APA 7: Zid, C. (2024). The Effect of Pythonic Constructs on the Software Development Process [Thèse de doctorat, Polytechnique Montréal]. PolyPublie. https://publications.polymtl.ca/58321/

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