On the Quantitative Estimation of Abstraction Level Increase in Metaprograms

Robertas Damaševičius

Higher-level programming such as metaprogramming introduces a layer of abstraction above the domain language programs. Metaprogramming allows describing generic components and managing variability in a domain. It is especially useful for developing program generators for domains, where a great deal of commonalties exists. It allows increasing the level of abstraction and hiding details that are unnecessary to the designer. Information abstraction and hiding reduces the amount of “user-visible” information. In this paper, we estimate the increase of abstraction by evaluating the information content at the lower (domain) and higher (meta) layers of abstraction. The estimation method is based on the Kolmogorov complexity and uses a common compression algorithm. The method is evaluated experimentally on families of DSP components.