- Full Text
- Scholarly Journal
Metaobject Protocol as a Tool for Language Evolution
![](/assets/ctx/51be0a5b/images/icons/blank.gif)
![](/assets/ctx/51be0a5b/images/icons/blank.gif)
![](/assets/ctx/51be0a5b/images/icons/blank.gif)
Full text preview
Abstract - This paper deals with evolution of software languages. Metaobject protocol (MOP) technology is suitable for support of evolution of language. The main goal of designing and developing MOP for software language is to achieve its extensibility. Evolution can be realized by the call of appropriate MOP operation. Very important aspect of language evolution is to preserve compatibility and consistency. To achieve this goal, each evolution step needs to be properly documented to keep track of all the changes made to the language. Transformation of language will be based on its description generated and realized by MOP and its operations. MOP operations alter language processor to conform to changes made to the language. Alteration of language processor itself can be done with help of reflection mechanisms.
Keywords: language evolution, metaobject protocols, metaprogramming, program transformation, reflection.
I. INTRODUCTION
Nowadays, software development is challenging due to two main factors - complexity and change [7]. Software products during their lifecycle are coping with change. Change causes software product to evolve. But to maintain quality of software product, evolution should be controlled in some way with help of language mechanisms and constructs. Traditionally, languages have been designed to be viewed as set of black box abstractions [9]. End programmers have only part or no control at all over the semantics or implementation of these abstractions. This point of view is related to misconception that software languages are immutable [5]. Programs are dependent on language, in which they are written, and tools which this language offers (e.g. interpreters, compilers, etc.). When we admit that program is subject to evolution and is tightly coupled with language in which is written we can assume that language can be subject to evolution, too.
Important aspect of language evolution is to preserve compatibility of programs written in...