Semantic Properties
Semantic properties are domain-independent documentation constructs with intuitive formal semantics that are mapped into the semantic domain of their application. We use the term “semantic properties” because they are properties (as in property-value pairs) which have formal semantics. Semantic properties are used as if they were normal semi-structured documentation. But, rather than being ignored by compilers and development environments as comments typically are, they have the attention of augmented versions of such tools. Semantic properties embed a tremendous amount of concise information wherever they are used without imposing the overhead inherent in the introduction of new languages and formalisms for similar purposes. Our current set of semantic properties are listed in Table 2 in the appendix of this article, and are specified in detail in Kiniry’s dissertation [18]. To explain their use, we will focus on particular enabling aspects of kind theory and provide a few examples of their use. When used in a particular language, semantic properties are realized using appropriate domain-specific extensions. We have integrated their use into the Java and Eiffel programming languages, as well as in the BON specification language [24, 29], through a process that we call semantic embedding.
|