Abstract
In a method called denorational engineering [6] the development of a denotational model of a software system consists of two major steps: first we develop an algebra of denotations Den, then we derive an appropriate algebra of syntax Syn. The latter is constructed in such a way that there exists a unique homomorphism (a denotational semantics) from Syn to Den. As usual, we assume that the syntax is described by a context-free grammar. However, unlike in traditional approaches to denotational semantics, we allow the grammar to be ambiguous. This frequently contributes to the clarity of the underlying definition of semantics and can also make parsing more efficient [2]. The YACC system is a well-known example of a standard computersupport tool where some form of such a possibility has been incorporated: YACC allows for grammars with typical ambiguities justified, for example, by the associativity of an operation or by the use of priority rules. In real-life applications the construction of syntax is not necessarily a one-way process. It may involve backtracking to denotations since after having derived a syntax we may wish to modify denotations and thus have to modify the syntax as well. This may happen both at the stage of the original system design and later, when new versions of an already existing and used system are developed. Every modification of a software system may be described as a combination of two steps: a restriction, where we remove some existing mechanisms, and an extension, where we add some new ones. In the former case the modification of syntax is rather easy: we just have to remove some productions from the corresponding grammar. The latter case, however, may be more complicated. Any extension
Talk to us
Join us for a 30 min session where you can share your feedback and ask us any queries you have
Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.