کد مقاله | کد نشریه | سال انتشار | مقاله انگلیسی | نسخه تمام متن |
---|---|---|---|---|
433343 | 1441666 | 2014 | 15 صفحه PDF | دانلود رایگان |
• We studied the way a Smalltalk system evolves traditionally.
• We studied the properties and challenges of bootstrapping a Smalltalk system.
• Bootstrapping provides reproducibility to the system.
• Bootstrapping allows the application of changes atomically.
• We validate our studies bootstrapping two different Smalltalk systems in Pharo.
Bootstrapping is a technique commonly known by its usage in language definition by the introduction of a compiler written in the same language it compiles. This process is important to understand and modify the definition of a given language using the same language, taking benefit of the abstractions and expression power it provides. A bootstrap, then, supports the evolution of a language. However, the infrastructure of reflective systems like Smalltalk includes, in addition to a compiler, an environment with several self-references. A reflective system bootstrap should consider all its infrastructural components. In this paper, we propose a definition of bootstrap for object-oriented reflective systems, we describe the architecture and components it should contain and we analyze the challenges it has to overcome. Finally, we present a reference bootstrap process for a reflective system and Hazelnut, its implementation for bootstrapping the Pharo Smalltalk-inspired system.
Journal: Science of Computer Programming - Volume 96, Part 1, 15 December 2014, Pages 141–155