Method of the Development of Ontological Operational Semantics for Imperative Programming Languages (original) (raw)
System Informatics, 2017
In the paper the notion of the conceptual operational semantics of a programming language is proposed. This formalism represents operational semantics of a programming language in terms of its conceptual model based on conceptual transition systems. The special kind of conceptual transition systems, operational conceptual transition systems, oriented to specification of conceptual operational semantics of programming languages is defined, the extension of the language of conceptual transition systems CTSL for operational conceptual transition systems is described, and the technique of the use of the extended CTSL as a domain-specific language of specification of conceptual operational semantics of programming languages is proposed. The conceptual operational semantics for the family of sample programming languages illustrate this technique.
2015
The methodology of the operational semantics development for programming languages based on the operational ontological approach, conceptual transition systems and CTSL, the language for the specification of such systems, is proposed. The development of operational semantics is illustrated by an example of procedural programming languages from the family MPL of model programming languages. Each target language covers a certain type of the procedural language constructs. Thus, the paper can be also considered as a cookbook on the development of operational semantics of procedural programming languages.
Semantics of Programming Languages
2016
In these lecture notes we present a few basic approaches to the definition of the semantics of programming languages. In particular, we present: (i) the operational semantics and the axiomatic semantics for a simple imperative language, and (ii) the operational semantics and the denotational semantics for some first order and higher order, typed functional languages. We then present some basic techniques for proving properties of imperative, functional, and concurrent programs. We closely follow the presentation done in the book by Glynn Winskel [19]. I express my gratitude to my colleagues at the Department of Informatics, Systems, and Production of the University of Roma Tor Vergata, and to my students and my co-workers Fabio Fioravanti, Fulvio Forni, Maurizio Proietti, and Valerio Senni for their support and encouragement. Thanks to Michele Ranieri and Massimiliano Macchia for pointing out some imprecisions in a preliminary version of these lecture notes. Many thanks also to the Aracne Publishing Company for its helpful cooperation.
System Informatics, 2017
In the paper the notion of the conceptual model of a programming language is proposed. This formalism represents types of the programming language, values, exceptions, states and executable constructs of the abstract machine of the language, and the constraints for these entities at the conceptual level. The new definition of conceptual transition systems oriented to specification of conceptual models of programming languages is presented, the language of redefined conceptual transition systems CTSL is described, and the technique of the use of CTSL as a domain-specific language of specification of conceptual models of programming languages is proposed. The conceptual models for the family of sample programming languages illustrate this technique.
A case study in specifying the semantics of a programming language
Proceedings of the 7th ACM SIGPLAN-SIGACT symposium on Principles of programming languages - POPL '80, 1980
about a year I have worked on a semantic specification for the C programming language My objecti~e was to construct a readable and precise specification of C. aimed at compiler writers, maintamers, and language pundm, This paper is a report on the project, * UNIX is a trademark of Bell Laboratories.
Understanding programming language concepts via operational semantics
2007
The origins of “formal methods” lie partly in language description (although applications of methods like VDM, RAISE or B to areas other than programming languages are probably more widely known). This paper revisits the language description task but uses operational (rather than denotational) semantics to illustrate that the crucial idea is thinking about an abstract model of something that one is trying to understand or design.
Formal Semantics of Programming Languages - An Overview
Electronic Notes in Theoretical Computer Science, 2006
These notes give an overview of the main frameworks that have been developed for specifying the formal semantics of programming languages. Some of the pragmatic aspects of semantic descriptions are discussed, including modularity, and potential applicability to visual and modelling languages. References to the literature provide starting points for further study.
Program Specific Transition Systems
Bulletin of the Novosibirsk Computing Center. Series:Computer Science, 2012
A new kind of labeled transition systems, program specic transition systems, is proposed. These systems are used to formalize and unify some aspects of program handling. Such aspects as the development of program operational semantics and proof of safety properties of programs are considered, and the appropriate classes of program specic transition systems are dened. Ontological transition systems and operational ontological semantics are dened in terms of program specic transition systems.
Semantics of programming languages: A tool-oriented approach
2000
Programming language semantics has lost touch with large groups of potential users [39]. Among the reasons for this unfortunate state of affairs, one stands out. Semantic results are rarely incorporated in practical systems that would help language designers to implement and test a language under development, or assist programmers in answering their questions about the meaning of some language feature not properly documented in the language's reference manual.