Results 1 
4 of
4
Modeless Structure Editing
, 1999
"... this paper we honour Tony by building a simple model of structure editing to serve as a basis for the design of a family of editors. Structure editors make it easy to perform edit actions in which structural units (commands, expressions, chapters, paragraphs) are manipulated. Unfortunately these edi ..."
Abstract

Cited by 5 (0 self)
 Add to MetaCart
this paper we honour Tony by building a simple model of structure editing to serve as a basis for the design of a family of editors. Structure editors make it easy to perform edit actions in which structural units (commands, expressions, chapters, paragraphs) are manipulated. Unfortunately these editors can make it rather difficult to enter certain kinds of new structure. For example, from the earliest days of structure editors for programming languages users have complained about awkwardness in entering expressions with infix operators. To illustrate this consider the expression
Representation dependence testing using program inversion
 In FSE
, 2010
"... The definition of a data structure may permit many different concrete representations of the same logical content. A (client) program that accepts such a data structure as input is said to have a representation dependence if its behavior differs for logically equivalent input values. In this paper, ..."
Abstract

Cited by 3 (1 self)
 Add to MetaCart
The definition of a data structure may permit many different concrete representations of the same logical content. A (client) program that accepts such a data structure as input is said to have a representation dependence if its behavior differs for logically equivalent input values. In this paper, we present a methodology and tool for automated testing of clients of a data structure for representation dependence. In the proposed methodology, the developer expresses the logical equivalence by writing a normalization program f that maps each concrete representation to a canonical one. Our solution relies on automatically synthesizing the onetomany inverse function of f: given an input value x, we can generate multiple test inputs logically equivalent to x by executing the inverse with the canonical value f(x) as input repeatedly. We present an inversion algorithm for restricted classes of normalization programs including programs mapping arrays to arrays in a typical iterative manner. We present a prototype implementation of the algorithm, and demonstrate how our methodology reveals bugs due to representation dependence in open source software such as Open Office and Picasa using the widely used image format Tiff. Tiff is a challenging case study for our approach.
Pointwise Relational Program Derivation
 jnoDI/UM Braga  LOGCOMP Workshop  [ 13
, 1999
"... The point free relational calculus has proved quite successful in the derivation of general programming principles [1, 5]. When applied to specific examples, however, it can be somewhat painful to use, due to the large number of combinators required. In this note, we explore the suggestion that for ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The point free relational calculus has proved quite successful in the derivation of general programming principles [1, 5]. When applied to specific examples, however, it can be somewhat painful to use, due to the large number of combinators required. In this note, we explore the suggestion that for specific examples, it may be preferable to conduct relational derivations of concrete programs in a pointwise calculus of nondeterministic mappings. The presentation is is largely informal: we introduce concepts and notations through an example, and we do not spell out a formal semantics of the calculus.
Relational Programming, Program Inversion and the Derivation of Parsing Algorithms
, 1993
"... The spec calculus is a programming algebra that supports and even encourages the derivation of relational programs in a clear and calculational style. After a brief introduction of the spec calculus two particular uses are investigated. First, the notion of program inversion is introduced. This noti ..."
Abstract

Cited by 1 (0 self)
 Add to MetaCart
The spec calculus is a programming algebra that supports and even encourages the derivation of relational programs in a clear and calculational style. After a brief introduction of the spec calculus two particular uses are investigated. First, the notion of program inversion is introduced. This notion from imperative programming allows one to construct from a given program R that satisfies fPg R fQg a program R 1 that satis es fQg R 1 fPg . It is shown that, as may be expected, a relational framework allows easy definition of and calculation with inverses of arbitrary programs. Several examples are discussed and used to introduce different methods to calculate implementable inverses. The second topic is the derivation of precedence parsing algorithms. A simple algorithm for the calculation of the inorder traversal of a tree is transformed in two steps into an algorithm for precedence parsing. The first transformation is the use of program inversion to obtain an algorithm that constru...