Results 1 -
2 of
2
Extensible Denotational Language Specifications
- SYMPOSIUM ON THEORETICAL ASPECTS OF COMPUTER SOFTWARE, NUMBER 789 IN LNCS
, 1994
"... Traditional denotational semantics assigns radically different meanings to one and the same phrase depending on the rest of the programming language. If the language is purely functional, the denotation of a numeral is a function from environments to integers. But, in a functional language with impe ..."
Abstract
-
Cited by 30 (4 self)
- Add to MetaCart
Traditional denotational semantics assigns radically different meanings to one and the same phrase depending on the rest of the programming language. If the language is purely functional, the denotation of a numeral is a function from environments to integers. But, in a functional language with imperative control operators, a numeral denotes a function from environments and continuations to integers. This paper introduces a new format for denotational language specifications, extended direct semantics, that accommodates orthogonal extensions of a language without changing the denotations of existing phrases. An extended direct semantics always maps a numeral to the same denotation: the injection of the corresponding number into the domain of values. In general, the denotation of a phrase in a functional language is always a projection of the denotation of the same phrase in the semantics of an extended language---no matter what the extension is. Based on extended direct semantics, i...
Collecting Potential
, 2003
"... Abstract In this paper we describe an analysis system for logic programs that makes it possible to characterise the optimisation opportunities within a predicate. The idea behind the proposed framework is that for each predicate the literals that can potentially be optimised are identified and colle ..."
Abstract
- Add to MetaCart
Abstract In this paper we describe an analysis system for logic programs that makes it possible to characterise the optimisation opportunities within a predicate. The idea behind the proposed framework is that for each predicate the literals that can potentially be optimised are identified and collected. The conditions under which these optimisations can be done safely are expressed as requirements on the calls to the predicate and collected into a so-called (local) optimisation table. This table does not only give a view on the potential of optimisation in a program, but as it relates the optimisations with call substitutions, it also defines the circumstances in which an optimisation can occur. This information can be valuable input during the development of better version generation heuristics, or can be given as feedback to the programmer. Keywords: logic programming, program analysis, compiler optimisations, polyvariance, version control CR Subject Classification: D.1.7, D.3.4, F.3.2

