Abstract relational semantics (1989)
| Venue: | McGill University |
| Citations: | 7 - 0 self |
BibTeX
@TECHREPORT{Desharnais89abstractrelational,
author = {Jules Desharnais},
title = {Abstract relational semantics},
institution = {McGill University},
year = {1989}
}
Years of Citing Articles
OpenURL
Abstract
L’algèbre relationnelle abstraite est utilisée pour donner une définition sémantique d’un langage de programmation impératif simple. A cet effet, divers domaines sont spécifiés par des axiomes relationnels. Certaines spécifications définissent des relations sur les types de base du langage (Booléens et entiers non négatifs); leur présentation insiste sur l’importance de la notion de point. Les autres spécifications construisent les domaines dont les relations sont utilisées pour dénoter les fragments de programmes. Les fragments ainsi traités sont les expressions, les déclarations de variables, les instructions (affectation, séquence, condition et itération) et les procédures. Les relations qui dénotent un frag-ment dépendent seulement de ce fragment et non de son environnement (à l’exception des procédures), ce qui constitue une approche originale. Enfin, on montre comment prouver la correction d’un fragment, relativement à une spécification, en utilisant sa définition sémantique. Les spécifications, la sémantique et la dérivation de programmes sont donc traitées uniformément dans le cadre de l’algèbre relationnelle abstraite. i Abstract relational algebra is used to define the semantics of a simple imperative language. In order to carry out this task, various domains are specified by relational axioms. Some specifications define relations on the basic types of the language (Booleans and natural numbers); their presentation stresses the importance of the concept of point. Other spec-ifications construct the relational domains whose relations are used to denote programs. The programming constructs that are defined include expressions, variable declarations, assignment statements, while-program statements and procedures. A particularity of the semantic definitions is that the relations denoting a program fragment depend only on the fragment, and not on its environment (procedure calls excepted). Finally, it is shown how the semantics of a program fragment can be used to prove its correctness relative to a specification. The result is a uniform abstract relational setting for specification, semantics and program derivation. ii







