Magic Literals in Pharo

Julien Delplanque 1 Stéphane Ducasse 1 Oleksandr Zaitsev 1
1 RMOD - Analyses and Languages Constructs for Object-Oriented Application Evolution
Inria Lille - Nord Europe, CRIStAL - Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL) - UMR 9189
Abstract : Literals are constant values (numbers, strings, etc.) used in the source code. Magic literals are the ones used without a clear explanation of their meaning. Presence of such literals harms source code readability, decreases its modularity, and encourages code duplication. Identifying magic literals is not straightforward. A literal can be considered self-explanatory in one context and magic in another. We need a heuristic to help developers spot magic literals. In this article, we study and characterize the literals in Pharo. We implemented a heuristic to detect magic literals and integrated it as a code critic rule for System Browser and Critics Browser in Pharo 7. We run our heuristic on 112,500 Pharo methods which reported 23,292 magic literals spread across 8,986 methods. We manually validated our approach on a random subset of 100 methods and found that 62% of the reported literals in those methods are indeed magic.
Complete list of metadatas

Cited literature [24 references]  Display  Hide  Download

https://hal.inria.fr/hal-02266137
Contributor : Lse Lse <>
Submitted on : Tuesday, August 13, 2019 - 1:52:33 PM
Last modification on : Friday, September 13, 2019 - 11:47:18 AM

File

main.pdf
Files produced by the author(s)

Identifiers

  • HAL Id : hal-02266137, version 1

Collections

Citation

Julien Delplanque, Stéphane Ducasse, Oleksandr Zaitsev. Magic Literals in Pharo. IWST19 - International Workshop on Smalltalk Technologies Cologne, Aug 2019, Köln, Germany. ⟨hal-02266137⟩

Share

Metrics

Record views

48

Files downloads

284