Referential transparency, definiteness and unfoldability

  title={Referential transparency, definiteness and unfoldability},
  author={Harald S{\o}ndergaard and Peter Sestoft},
  journal={Acta Informatica},
SummaryThe term “referential transparency” is frequently used to indicate that a programming language has certain useful substitution properties. We observe, however, that the formal and informal definitions given in the literature are not equivalent and we investigate their relationships. To this end, we study the definitions in the context of a simple expression language and show that in the presence of non-determinism, the differences between the definitions are manifest. We propose a… 

Correctness of Non-determinism Analyses in a Parallel-Functional Language

A “maximal” denotational semantics for Eden in the sense that the set of possible values produced by an expression is bigger than the actual one is defined, which is enough to prove the correctness of the analyses of non-determinism analyses.

Functional Approaches to Constraint Handling and State Change

This chapter shows how referential transparency is compromised in the presence of certain forms of state change, and outlines a number of solutions to this problem.

Rewriting and narrowing for constructor systems with call-time choice semantics 1

This paper develops thoroughly the theory for the first-order version of let-rewriting, a simple reduction notion close to that of classical term rewriting, but extended with a let-binding construction to adequately express the combination of call-time choice with non-strict semantics.

Infinite Unfolding and Transformations of Nondeterministic Programs

  • B. Lisper
  • Computer Science
    Fundam. Informaticae
  • 2005
The reported work formalises the intuitive idea that two recursive programs ought to be equivalent, also in a nondeterministic setting, if they can be symbolically unfolded, through deterministic reductions, to the same, possibly infinite, term.

Mars: an imperative/declarative higher-order programming language with automatic destructive update

This thesis presents a framework for classifying programming languages according to the benefits of pure programming, and presents the design and implementation of a new programming language, Mars, which allows the programmer to write imperative-style code using Python syntax, yet has thebenefits of a language with referential transparency.

Non-determinism analyses in a parallel-functional language

Several non-determinism analyses developed for Eden aimed at detecting the parts of the program that, even in the presence of a process merge, still exhibit a deterministic behaviour are described.

Semantics of under-determined expressions

This work considers a simple functional language including under-determined expressions and presents a denotational semantics for the language along with a set of proof rules for reasoning about properties of under-Determined expressions.

Implementing declarative parallel bottom-avoiding choice

The design, semantics, implementation and use of a family of bottom-avoiding choice operators for Glasgow parallel Haskell are presented and their effectiveness is demonstrated by comparing the parallel performance of the speculative search with naive and 'perfect' implementations.

Non-determinism in Functional Languages

The introduction of a non-deterministic operator in even a very simple functional programming language gives rise to a plethora of semantic questions and the diversity of semantic possibilities is examined systematically using denotational definitions based on mathematical structures called power domains, resulting in an improved understanding of the different kinds of nondeterminism and the properties of different kind of non-Deterministic languages.

Semantics of the VDM Real-Time Dialect

In this technical report a semantic model is provided for the Real-Time dialect of the Vienna Development Method, which builds upon both the formal semantics providing for the ISO standard VDM Specification Language and on other work on the core of the VDM-RT notation.



Denotational Semantics

  • P. Mosses
  • Computer Science
    Handbook of Theoretical Computer Science, Volume B: Formal Models and Sematics
  • 1990

From a Logical Point of View

It is the wish of the author to keep general terms distinct from abstract singular terms, so that the over-all dis­ pensability of some assumption that has always rankled as ad hoc and unintuitive is discovered.

Parameter-passing mechanisms and nondeterminism

The problem of defining an adequate semantics for recursive definitions which allow various types of parameter-passing mechanisms has generated a considerable amount of interest in the literature.

Word and Object

This edition offers a new preface by Quine's student and colleague Dagfinn Follesdal that describes the never-realized plans for a second edition of Word and Object, in which Quine would offer a more unified treatment of the public nature of meaning, modalities, and propositional attitudes.

Fundamental Concepts in Programming Languages

  • C. Strachey
  • Computer Science
    High. Order Symb. Comput.
  • 2000
This paper forms the substance of a course of lectures given at the International Summer School in Computer Programming at Copenhagen in August, 1967. The lectures were originally given from notes

Fundamentals of Programming Languages

  • E. Horowitz
  • Computer Science
    Springer Berlin Heidelberg
  • 1984
Though at the time of writing this it is unclear how popular or influential Ada will become, I have decided to select many examples from Ada as the authors make their way through this book, with a list of the high level programming languages Advances in the '70s.

Nondeterministic call by need is neither lazy nor by name

This paper offers a definition of nondeterministiccall by need and gives two alternative call by need power domain semantics for a language with McCarthy's ambiguous operator amb, showing the usefulness of amb even for writing deterministic expressions.

The Munich Project CIP: Volume I: The Wide Spectrum Language CIP-L

A good way to break the boredom in reading is choosing the munich project cip vol i the wide spectrum language cip l as the reading material.

Introduction to Logic Programming

This introduction to logic programming is based on Haskell, a very simple way of programming that can be applied to any kind of computer programming.