Title: Relationship Maintenance in Software Language Repositories,
Abstract: The context of this research is testing and building software systems and,
specifically, software language repositories (SLRs), i.e., repositories with
components for language processing (interpreters, translators, analyzers,
transformers, pretty printers, etc.). SLRs are typically set up for developing
and using metaprogramming systems, language workbenches, language definition
frameworks, executable semantic frameworks, and modeling frameworks. This work
is an inquiry into testing and building SLRs in a manner that the repository is
seen as a collection of language-typed artifacts being related by the
applications of language-typed functions or relations which serve language
processing. The notion of language is used in a broad sense to include text-,
tree-, graph-based languages as well as representations based on interchange
formats and also proprietary formats for serialization. The overall approach
underlying this research is one of language design driven by a complex case
study, i.e., a specific SLR with a significant number of processed languages
and language processors as well as a noteworthy heterogeneity in terms of
representation types and implementation languages. The knowledge gained by our
research is best understood as a declarative language design for regression
testing and build management, we introduce a corresponding language Ueber with
an executable semantics which maintains relationships between language-typed
artifacts in an SLR. The grounding of the reported research is based on the
comprehensive, formal, executable (logic programming-based) definition of the
Ueber language and its systematic application to the management of the SLR YAS
which consists of hundreds of language definition and processing components
(such as interpreters and transformations) for more than thirty languages (not
counting different representation types) with Prolog, Haskell, Java, and Python
being used as implementation languages. The importance of this work follows
from the significant costs implied by regression testing and build management
and also from the complexity of SLRs which calls for means to help with
understanding.