On the Language Design and Semantic Foundation of LCL, a Larch/C Interface Specification Language

Abstract

The specialization of a specification language to a particular programming language is an important characteristic of module interface specification languages (MISL's). The only well-developed MISL's are the Larch interface languages and among these LCL, a Larch/C interface specification language, would seem to be the most mature. Our efforts to elaborate a semantic model for LCL lead to the identification of inadequacies and insufficiencies in the language and its informal definition. After defining and motivating the concept of object dependency, we demonstrate that LCL lacks the necessary language constructs for specifying object dependency relationships. We illustrate shortcomings caused by implicit constraints that are related to function parameters and object trashing. We show that the implicit constraint associated with the trashing of objects results in a violation of the principle of referential transparency. The identified inadequacies and insufficiencies are overcome in LCL ,the variant of LCL described in this thesis. The main contribution of this thesis is a semantic model within which a core subset of LCL (consisting of constant declarations, variable declarations and function specifications) is formallydefined. We present the semantics in a style known as natural semantics. The meaning of the non-interface part of an LCL specification is captured byanembedding intoLSL. The primary notation used to write the semantics isZ. Wehavechosen to use LL, the logic underlying LSL, as the logical basis for LCL . tthe heart of the semantic model is our model of thestore. The storage model is exceptional in that it supports object dependencies in their full static generality..

    Similar works