Results 11 
18 of
18
The TkInter homepage. http://www.python.org/topics/tkinter
 Journal of Functional programming
, 2001
"... In this paper we present two type inference systems for detecting uselesscode in higherorder typed functional programs. Type inference can be performed in an efficient and complete way, by reducing it to the solution of a system of constraints. We also give a uselesscode elimination algorithm whi ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
In this paper we present two type inference systems for detecting uselesscode in higherorder typed functional programs. Type inference can be performed in an efficient and complete way, by reducing it to the solution of a system of constraints. We also give a uselesscode elimination algorithm which is based on a combined use of these type inference systems. The main application of the technique is the optimization of programs extracted from proofs in logical frameworks, but it could be used as well in the elimination of uselesscode determined by program transformations. Capsule Review Dead code is a subterm M of a term t = C[M] which does not matter to computation, that is, which may be replaced by any other term of the same type without altering the observational behaviour of the program: C[M] =obs C[N] for any N with the type of M. Deadcode may be replaced by dummy variable, or even completely removed, in order to optimize a program. The interest in deadcode by the authors started as a byproduct of a proof system which generated programs meeting a specification out of proofs that the specification is satisfiable.
Analyse Statique De Programmes : Fondements Et Applications
, 1999
"... domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 Lattices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3 Specification of analyses . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.4 Semantic correctness . . . . . . . . . . . . . . . . . . . . . . . . ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
domains . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2 Lattices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3 Specification of analyses . . . . . . . . . . . . . . . . . . . . . . . 9 1.2.4 Semantic correctness . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.5 Solving systems of equations . . . . . . . . . . . . . . . . . . . . . 13 1.3 This document . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 2 Program analysis with conjunctive types 17 2.1 Strictness types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.1.1 Lindenbaum algebras . . . . . . . . . . . . . . . . . . . . . . . . . 19 2.2 The strictness logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2.3 Relationship to abstract interpretation . . . . . . . . . . . . . . . . . . . . 22 2.4 A variation: bindingtime analysis . . . . . . . . . . . . . . . . . . . . . . 22 3 Disjunctions and data structures: Properties 25 3.1 Axiomatisation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.1.1 Normal Form . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29 3.2 Abstract domains . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.2.1 Base Types, Products, Sums and Functions . . . . . . . . . . . . . 31 3.2.2 Recursive Data Structures . . . . . . . . . . . . . . . . . . . . . . 32 3.2.3 Strictness Properties of Lists . . . . . . . . . . . . . . . . . . . . . 35 4 Disjunctions and data structures: Logic 37 4.1 Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 4.1.1 Strictness Logic . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 4.1.2 Proving properties for lists . . . . . . . . . . . . . . . . . . . . . . 42 4.2 Bibliographical not...
Two NonDeterminism Analyses in Eden
, 2000
"... Nondeterminism may affect the referential transparency of the programs written in Eden: If a nondeterministic expression is evaluated in different processes, the variable it is bound to it will denote possibly different values. It would be desirable to warn the programmer about this situation, or t ..."
Abstract

Cited by 2 (1 self)
 Add to MetaCart
Nondeterminism may affect the referential transparency of the programs written in Eden: If a nondeterministic expression is evaluated in different processes, the variable it is bound to it will denote possibly different values. It would be desirable to warn the programmer about this situation, or to force the evaluation of such an expression so that all the occurrences of the variable have the same value. Additionally there exist sequential transformations that are incorrect when nondeterminism is involved. Such transformations should be applied only to those parts of the program that are sure to be deterministic. In this paper several analyses of different efficiency and power are presented. Several techniques are used: A types annotation system and abstract interpretation. 1 Introduction The parallelfunctional language Eden extends the lazy functional language Haskell by syntactic constructs to explicitly define and communicate processes. The three main new concepts are process a...
Optimising Compilation  Part II: lazy functional languages
, 1992
"... : This lecture considers the optimisation of functional programming languages (particularly `lazy' languages) based on `strictness analysis'. Such optimisations alter evaluation order to allow more efficient translation into von Neumann architecture or to increase the parallelism in a sequentially s ..."
Abstract

Cited by 2 (0 self)
 Add to MetaCart
: This lecture considers the optimisation of functional programming languages (particularly `lazy' languages) based on `strictness analysis'. Such optimisations alter evaluation order to allow more efficient translation into von Neumann architecture or to increase the parallelism in a sequentially specified system (such as that implied by lazysemantics) . Keywords: Functional languages, lazy evaluation, eager evaluation, strictness analysis, abstract interpretation. 1 Functional Languages The term `functional' as applied to programming languages has been used to apply to a number of related but different models of computation. As used here it will refer to purely functional languages, characterised by a complete lack of sideeffects and a very direct relationship with the calculus. This rules out languages such as ML and Lisp which, although emphasising the status of functions in the construction of programming and containing wellunderstood pure subsets, include forms of assignmen...
Type Theory and Projections for Static Analysis
, 1995
"... A system of annotated types is proposed as a means of describing and inferring static information, such as strictness and constancy, about functional programs. An abstract semantics is given in terms of projections. A close connection between annotated type assignment and projection analysis is demo ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
A system of annotated types is proposed as a means of describing and inferring static information, such as strictness and constancy, about functional programs. An abstract semantics is given in terms of projections. A close connection between annotated type assignment and projection analysis is demonstrated.
CpsTranslation and the Correctness of Optimising Compilers
, 1992
"... We show that compiler optimisations based on strictness analysis can be expressed formally in the functional framework using continuations. This formal presentation has two benefits: it allows us to give a rigorous correctness proof of the optimised compiler; and it exposes the various optimisations ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
We show that compiler optimisations based on strictness analysis can be expressed formally in the functional framework using continuations. This formal presentation has two benefits: it allows us to give a rigorous correctness proof of the optimised compiler; and it exposes the various optimisations made possible by a strictness analysis. These benefits are especially significant in the presence of partially evaluated data structures. 1 Introduction Realistic compilers for imperative or functional languages include a number of optimisations based on nontrivial global analyses. Proving the correctness of such optimising compilers should involve three steps: 1. proving the correctness of the original (unoptimised) compiler; 2. proving the correctness of the analysis; and 3. proving the correctness of the modifications of the simpleminded compiler to exploit the results of the analysis. A substantial amount of work has been devoted to steps (1) and (2) but there has been surprisingly ...
Uniform PERs and Comportment Analysis
, 1995
"... Hunt showed that the notion of PERbased strictness properties subsumed the incomparable notions of ideal and projectionbased properties on nonlifted value spaces. We extend Hunt's idea so it can encompass other comportment properties (such as totality) by separating the information and fixpoint ..."
Abstract

Cited by 1 (1 self)
 Add to MetaCart
Hunt showed that the notion of PERbased strictness properties subsumed the incomparable notions of ideal and projectionbased properties on nonlifted value spaces. We extend Hunt's idea so it can encompass other comportment properties (such as totality) by separating the information and fixpoint orderings. We then define a class of uniform PERs (in the sense that they treat nonbottom ground elements, e.g. integers, identically) and then show how these can be hereditarily defined on function spaces. These (or subsets thereof) can be taken as a space of abstract values for abstract interpretation in the style of Nielson.
Chapter 1 Cardinality Analysis for Recursive Types (Draft)
"... Abstract: The traditional approach to recursive types in higherorder functional languages imposes strong restrictions on admissible recursion schemata: a sum of products of simple type expressions, possibly parametric, is the norm. In this paper, we advocate a more liberal type definition language, ..."
Abstract
 Add to MetaCart
Abstract: The traditional approach to recursive types in higherorder functional languages imposes strong restrictions on admissible recursion schemata: a sum of products of simple type expressions, possibly parametric, is the norm. In this paper, we advocate a more liberal type definition language, combining standard type constructors and firstorder parametric polymorphism with arbitrary recursion and some useful nonfree constructs. The existence of fixpoints and some other properties of the defined types, e.g., the existence of a computable equality and total order, can be inferred by abstract interpretation of the type equations in terms of cardinality classes.