Executable semantic descriptions
Software—Practice & Experience
Denotational semantics: a methodology for language development
Denotational semantics: a methodology for language development
Reasoning with continuations II: full abstraction for models of control
LFP '90 Proceedings of the 1990 ACM conference on LISP and functional programming
Handbook of theoretical computer science (vol. B)
Handbook of theoretical computer science (vol. B)
Advanced C++ programming styles and idioms
Advanced C++ programming styles and idioms
Semantics of programming languages: structures and techniques
Semantics of programming languages: structures and techniques
Integrating the Scheme and C languages
LFP '92 Proceedings of the 1992 ACM conference on LISP and functional programming
ACM SIGPLAN Notices
The denotational semantics of programming languages
Communications of the ACM
The Denotational Description of Programming Languages: An Introduction
The Denotational Description of Programming Languages: An Introduction
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory
Domains for Denotational Semantics
Proceedings of the 9th Colloquium on Automata, Languages and Programming
A framework for higher-order functions in C++
COOTS'95 Proceedings of the USENIX Conference on Object-Oriented Technologies on USENIX Conference on Object-Oriented Technologies (COOTS)
Hi-index | 0.00 |
In this paper, we describe how the denotational semantics of programming languages can be implemented in C++, by exploiting the object-oriented programming paradigm. Such implementations are execution models, extremely useful for the study of programming languages. Although C++ is not a natural choice for this problem domain, compared to functional programming languages such as ML, we suggest a type-safe framework, implemented in pure C++, that integrates functional characteristics such as high-order functions and is capable of naturally expressing denotational descriptions. Finally, by comparing our approach to possible implementations using functional languages, we investigate extensions to C++ that would be valuable in this problem domain.