Pharo: a reflective language - A first systematic analysis of reflective APIs - Pharo
Conference Papers Year : 2023

Pharo: a reflective language - A first systematic analysis of reflective APIs

Abstract

Reflective operations are powerful APIs that let developers build advanced tools or architecture. Reflective operations are used for implementing tools and development environments (e.g., compiler, debugger, inspector) or language features (e.g., distributed systems, exception, proxy, aspect-oriented programming). In addition, languages are evolving, introducing better concepts, and revising practices and APIs. As such, since 2008 Pharo evolved and was built on Squeak which changed from the original Smalltalk reflective APIs. Pharo has one of the largest reflective feature sets ranging from structural reflection to on-demand stack reification. In addition, new metaobjects got integrated such as first-class instance variables. Finally, reflective facilities are mixed with the base-level API of objects and classes and reflective features are heavily used by the system tools. Getting an understanding of such API is, however, tedious when the API is large and evolved over a decade. There is a need for a deep analysis of current reflective APIs to understand their underlying use, potential dependencies, and whether some reflective features can be scoped and optional. In this article, we analyze the reflective operations used in Pharo 11. We classify the current reflective operations in different families. Also, we identify a set of issues raised by the use of reflective operations. Such an analysis of reflective operations in Pharo is important to support the revision of the reflective layer and its potential redesign.
Fichier principal
Vignette du fichier
main.pdf (787.18 Ko) Télécharger le fichier
Origin Publisher files allowed on an open archive
licence

Dates and versions

hal-04217271 , version 1 (25-09-2023)

Licence

Identifiers

  • HAL Id : hal-04217271 , version 1

Cite

Iona Thomas, Stéphane Ducasse, Pablo Tesone, Guillermo Polito. Pharo: a reflective language - A first systematic analysis of reflective APIs. IWST 23 — International Workshop on Smalltalk Technologies, Aug 2023, Lyon, France. ⟨hal-04217271v1⟩
243 View
73 Download

Share

More