5,664 research outputs found
Applying quantitative semantics to higher-order quantum computing
Finding a denotational semantics for higher order quantum computation is a
long-standing problem in the semantics of quantum programming languages. Most
past approaches to this problem fell short in one way or another, either
limiting the language to an unusably small finitary fragment, or giving up
important features of quantum physics such as entanglement. In this paper, we
propose a denotational semantics for a quantum lambda calculus with recursion
and an infinite data type, using constructions from quantitative semantics of
linear logic
Quantum Alternation: Prospects and Problems
We propose a notion of quantum control in a quantum programming language
which permits the superposition of finitely many quantum operations without
performing a measurement. This notion takes the form of a conditional construct
similar to the IF statement in classical programming languages. We show that
adding such a quantum IF statement to the QPL programming language simplifies
the presentation of several quantum algorithms. This motivates the possibility
of extending the denotational semantics of QPL to include this form of quantum
alternation. We give a denotational semantics for this extension of QPL based
on Kraus decompositions rather than on superoperators. Finally, we clarify the
relation between quantum alternation and recursion, and discuss the possibility
of lifting the semantics defined by Kraus operators to the superoperator
semantics defined by Selinger.Comment: In Proceedings QPL 2015, arXiv:1511.0118
A Certified Study of a Reversible Programming Language
We advance in the study of the semantics of Janus, a C-like reversible programming language. Our study makes utterly explicit some backward and forward evaluation symmetries. We want to deepen mathematical knowledge about the foundations and design principles of reversible computing and programming languages. We formalize a big-step operational semantics and a denotational semantics of Janus. We show a full abstraction result between the operational and denotational semantics. Last, we certify our results by means of the proof assistant Matita
Action semantics in retrospect
This paper is a themed account of the action semantics project, which Peter Mosses has led since the 1980s. It explains his motivations for developing action semantics, the inspirations behind its design, and the foundations of action semantics based on unified algebras. It goes on to outline some applications of action semantics to describe real programming languages, and some efforts to implement programming languages using action semantics directed compiler generation. It concludes by outlining more recent developments and reflecting on the success of the action semantics project
Analyzing logic programs with dynamic scheduling
Traditional logic programming languages, such as Prolog, use a fixed left-to-right atom scheduling rule. Recent logic programming languages, however, usually provide more flexible scheduling in which computation generally proceeds leftto- right but in which some calis are dynamically
"delayed" until their arguments are sufRciently instantiated
to allow the cali to run efficiently. Such dynamic scheduling has a significant cost. We give a framework for the global analysis of logic programming languages with dynamic scheduling and show that program analysis based on this framework supports optimizations which remove much
of the overhead of dynamic scheduling
Facilitating modular property-preserving extensions of programming languages
We will explore an approach to modular programming language descriptions and extensions in a denotational style.
Based on a language core, language features are added stepwise on the core. Language features can be described
separated from each other in a self-contained, orthogonal way. We present an extension semantics framework consisting
of mechanisms to adapt semantics of a basic language to new structural requirements in an extended language
preserving the behaviour of programs of the basic language. Common templates of extension are provided. These
can be collected in extension libraries accessible to and extendible by language designers. Mechanisms to extend
these libraries are provided. A notation for describing language features embedding these semantics extensions is
presented
- ā¦