Academia.edu no longer supports Internet Explorer.
To browse Academia.edu and the wider internet faster and more securely, please take a few seconds to upgrade your browser.
1999, arXiv (Cornell University)
…
10 pages
1 file
By paying more attention to semantics-based tool generation, programming language semantics can significantly increase its impact. Ultimately, this may lead to "Language Design Assistants" incorporating substantial amounts of semantic knowledge.
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.
1985
The design and development of semantically based programming tools is a goal whose fulfillment is unquestionably many years off. The vision has been articulated in various forms by many researchers (including us in IFIP 83), but our impression now is that the expression of the vision provides little more than spiritual support and that there is an urgent need to distinguish shorter term goals along the way to mechanized tools. While there does indeed seem to be some consensus that a notion of program derivation or "meta-program" is required (and there are indeed many informal examples of derivations in the literature), little has been said concerning the formal structure of these objects and how we will need to operate on them. What distinguishes derivations from mere proofs? What are the basic derivation steps? What deductive support is required? How can we assess the value of proposed derivation structures? Also, while much has been said concerning the functionality of the proposed tools, it is safe to say that we are still quite uncertain of their i~ttended behavior and mode of interaction. What will be the correct balance of responsibility between programmer
1999
Abstract Montages are a semi-visual language specification formalism recently proposed by some of the authors. This framework has been successfully used to give complete executable specifications of languages like C and Java. This paper compares Montages with action equations, both being paradigms for incorporating a means for specifying dynamic semantics in an environment generator using an attribute grammar framework.
2001
Programming is at least as much about manipulating existing code as it is about writing new code. Existing code is modified, for example to make inefficient code run faster, or to accommodate for new features when reusing code; existing code is analyzed, for example to verify certain program properties, or to use the analysis information for code modifications. Semantics-based program
Electronic Proceedings in Theoretical Computer Science
Many universities have courses and projects revolving around compiler or interpreter implementation as part of their degree programmes in computer science. In such teaching activities, tool support can be highly beneficial. While there are already several tools for assisting with development of the front end of compilers, tool support tapers off towards the back end, or requires more background experience than is expected of undergraduate students. Structural operational semantics is a useful and mathematically simple formalism for specifying the behaviour of programs and a specification lends itself well to implementation; in particular bigstep or natural semantics is often a useful and simple approach. However, many students struggle with learning the notation and often come up with ill-defined and meaningless attempts at defining a structural operational semantics. A survey shows that students working on programming language projects feel that tool support is lacking and would be useful. Many of these problems encountered when developing a semantic definition are similar to problems encountered in programming, in particular ones that are essentially the result of type errors. We present a pedagogical metalanguage based on natural semantics, and its implementation, as an attempt to marry two notions: a syntax similar to textbook notation for natural semantics on the one hand, and automatic verification of some correctness properties on the other by means of a strong type discipline. The metalanguage and the tool provide the facilities for writing and executing specifications as a form of programming. The user can check that the specification is not meaningless as well as execute programs, if the specification makes sense.
2009 Australian Software Engineering Conference, 2009
In this paper we report on a long-term research effort to develop and use efficient language implementation generators in practice. The generator is applied to a number of different languages, some of which are used for projects in industry. The used formal specification style is Operational Semantics, primarily in the form called Natural Semantics, represented and supported by a meta-language and tool called the Relational Meta Language (RML), which can generate efficient implementations in C, on par with hand-implemented code.
In this tutorial, we compare the main approaches for programming language semantic specification from the point of view of modularity and reusability. We will also present reusable monadic semantics, which combines monadic semantics with generic programming concepts and we will present the specification of simple functional, imperative and logic programming languages. The specifications are made from reusable semantic building blocks, which facilitates the comparison between different paradigms.
Dyna, 2012
In this paper, we propose a semantic service platform for implementing the steps of a semantic-and model-driven architecture (MDA)-based method for automated code generation. The code generation is achieved by semantically relating operations in unified modeling language (UML) class diagrams with implemented operations. The relationship among operations is achieved by finding implemented operations with the same post-condition of the operation under implementation. The resultant code is a sequence of invocations to the implemented operations which, acting as a whole, achieve the post-condition of the operation under implementation. Semantics is specified by means of a domain-specific language (DSL), also defined in this paper. Services of the platform and the method are shown in execution in a case study.
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.
Loading Preview
Sorry, preview is currently unavailable. You can download the paper by clicking the button above.
2006 International Multi-Conference on Computing in the Global Information Technology - (ICCGI'06), 2006
Electronic Notes in Theoretical Computer Science, 1999
Electronic Notes in Theoretical Computer Science, 2006
ArXiv, 2019
Journal of Functional Programming, 2010
Electronic Notes in Theoretical Computer Science, 2002