{'fraction_non_alphanumeric': 0.023134328358208955, 'fraction_numerical': 0.0, 'mean_word_length': 5.151376146788991, 'pattern_counts': {'":': 0, '<': 0, '<?xml version=': 0, '>': 0, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 1, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
Deriving a Component Model from a Language Specification : An Example Using Natural Semantics ∗

Development of a component model for a given language is tedious, time-consuming, and error-prone. Moreover, many tasks of this process have to be repeated when modeling sets of related languages. In this paper, we propose to use the meta-modeling approach and for a given language to derive an invasive component model as its derived meta-model. The derivation of a component model then becomes a horizontal extension of the corresponding language meta-model. We argue that, in principle, any language construct can be made generic by a mapping to a generic element of its component model. Moreover, for extensible language constructs additional mappings can be provided to support extensible component constructs. Using this approach, a generic and extensible component model can be derived from a given language and used both for generic and view-based programming. The presented approach provides significant automation support in the development of component models for arbitrary languages. As an example, we show the derivation of a component model using a Natural Semantics specification for a given language. The specification is defined using Relational Meta-Language (RML), which is an executable implementation of Natural Semantics.