Systems semantics: principles, applications, and implementation
- 1 January 1988
- journal article
- Published by Association for Computing Machinery (ACM) in ACM Transactions on Programming Languages and Systems
- Vol. 10 (1) , 118-155
- https://doi.org/10.1145/42192.45067
Abstract
Systems semantics extends the denotational semantics of programming languages to a semantics for the description of arbitrary systems, including objects that are not computations in any sense. By defining different meaning functions, the same formal description may be used to denote different system properties, such as structure, behavior, component cost, and performance aspects (e.g., timing). The definition of these semantic functions also provides guidance in language design, in particular for the match between language constructs and the system concepts to be expressed. Aiming at compositionality ensures useful properties for formal manipulation. In this fashion, the meaning functions can be made sufficiently simple to serve not only as a direct implementation on a machine but also as rules for reasoning about systems in a transformational manner. As the applications show, however, compositionality can be ensured only through careful consideration of the characteristics of the flow of information inside the system. Two classes of application are discussed: Unidirectional systems, in particular digital systems without feedback (combinational) and with feedback (sequential), and a certain class of analog systems. Nonunidirectional systems, in particular two-port analog networks. The emphasis will be on the functional style of description and on formal reasoning (theorem proving, derivation of properties). Implementation and rapid prototyping strategies in various system description environments are also briefly discussed. These would permit the concepts of system semantics to be explored without the need for a complete implementation.Keywords
This publication has 12 references indexed in Scilit:
- Concurrent Prolog as an Efficient VLSI Design LanguageComputer, 1985
- On The Equivalence of Time-Division and Frequency-Division MultiplexingIEEE Transactions on Communications, 1985
- Verify: A program for proving correctness of digital hardware designsArtificial Intelligence, 1984
- A null-object detection algorithm for constructive solid geometryCommunications of the ACM, 1984
- muFP, a language for VLSI designPublished by Association for Computing Machinery (ACM) ,1984
- Abstraction in the Intel iAPX-432 prototype systems implementation languageACM SIGPLAN Notices, 1983
- Functional geometryPublished by Association for Computing Machinery (ACM) ,1982
- The semantic elegance of applicative languagesPublished by Association for Computing Machinery (ACM) ,1981
- Can programming be liberated from the von Neumann style?Communications of the ACM, 1978
- What can we do about the unnecessary diversity of notation for syntactic definitions?Communications of the ACM, 1977