14804186
Proving the correctness of reactive systems using sized types
We have designed and implemented a type-based analysis for proving some basic properties of reactive systems. The analysis manipulates rich type expressions that contain information about the sizes of recursively defined data structures. Sized types are useful for detecting deadlocks, nontermination, and other errors in embedded programs. To establish the soundness of the analysis we have developed an appropriate semantic model of sized types.
14958709
Making choices lazily
We present a natural semantics that models the untyped, normal order A-calculus plus McCarthy’s amb in the context of call-by-need parameter passing. This results in a singular semantics for amb. Previous work on singular choice has concentrated on erratic choice, a less interesting nondeterministic choice operator, and only in relation to callby-value parameter passing, or call-by-name restricted to deterministic terms. The natural semantics contains rules for both convergent and divergent behaviour, allowing it to distinguish programs that differ only in their divergent behaviour. As a result, it is more discriminating than current domain-theoretic models. This, and the fact that it models singular amb, makes the natural semantics suitable for reasoning about lazy, functional languages containing McCarthy’s amb.
8161135
Binding-Time Analysis for Polymorphic Types
Offline partial evaluators specialise programs with annotations which distinguish specialisation-time (or static) computations from run-time ones. These annotations are generated by a binding-time analyser, via type inference in a suitable type-system. Henglein and Mossin developed a type system which allows polymorphism in binding-times, so that the same code can be specialised with different computations being static at different uses. We extend their work to permit polymorphism in types as well. This is particularly important for separately compiled libraries.Following Henglein and Mossin, binding-times are passed as parameters during specialisation, but types are not. Instead, we pass coercion functions when necessary, which makes specialisation less "interpretive" than it would otherwise be. We keep track of the coercions needed by assigning qualified types to polymorphic functions.We also consider hand-annotations to provide limited user control over the binding-time analysis, which our prototype implementation showed to be necessary.
27745403
Type Specialisation for the lambda-Calculus; or, A New Paradigm for Partial Evaluation Based on Type Inference
28448708
The Design of a Pretty-printing Library
In this chapter we have considered the design of combinator libraries. We saw how studying the algebraic properties of the combinators desired can both help to suggest natural choices of representation, and guide the implementation of the operators. We saw several examples — lists, monads, and a pretty-printing library. For this kind of program development we need a language with higher-order functions and lazy evaluation, for which equational reasoning is valid; in other words, Haskell is ideally suited.
218895568
How to give a good research talk
Giving a good research talk is not easy. We try to identify some things which we have found helpful, in the hope that they may be useful to you.
4435102
An interface for sketching 3D curves
The ability to specify nonplanar 3D curves is of fundamental importance in 3D modeling and animation systems. Effective techniques for specifying such curves using 2D input devices are desirable, but existing methods typically require the user to edit the curve from several viewpoints. We present a novel method for specifying 3D curves with 2D input from a single viewpoint. The user rst draws the curve as it appears from the current viewpoint, and then draws its shadow on the oor plane. The system correlates the curve with its shadow to compute the curve's 3D shape. This method is more natural than existing methods in that it leverages skills that many artists and designers have developed from work with pencil and paper.
6699728
Art-based rendering with continuous levels of detail
In previous work [6], we presented an algorithm for rendering virtual scenes using art-based styles. We demonstrated the ability to render fur, grass, and trees in a stylized manner that evoked the complexity of these textures without representing all their components explicitly. We achieved this with stroke-based procedural textures that generated detail elements, or graftals, just as needed. Our implementation had several drawbacks. First, each new graftal texture required a procedural implementation that included writing code. Also, graftals were regenerated in each frame in a way that led to excessive introduction and elimination of graftals even for small changes in camera parameters. Lastly, our system provided no way to continuously vary the properties of graftals, including color, size, or stroke width. Such an ability could be used to achieve better frame-to-frame coherence, or more generally to animate graftals. In this paper, we present a new framework for graftal textures that addresses these issues. Our new framework allows all major decisions about graftal look and behavior to be specified in a text file that can be edited by a designer. We have achieved greater frameto-frame coherence by using graftals that remain in fixed positions on the model surface. The look and behavior of graftals as they appear or disappear can now be animated to create smooth transitions. Finally, we introduce the concept of tufts which manage the multiresolution behavior of graftals according to the specifications of the scene designer.
12392598
Reflections on the use of grounded theory in interpretive information systems research
In Information Systems research there are a growing number of studies that must necessarily draw upon the contexts, experiences and narratives of practitioners. This calls for research approaches that are qualitative and may also be interpretive. These may include case studies or action research projects. For some researchers, particularly those with limited experience of interpretive qualitative research, there may be a lack of confidence when faced with the prospect of collecting and analysing the data from studies of this kind. In this paper we reflect on the lessons learned from using Grounded Theory in an interpretive case study based piece of research. The paper discusses the lessons and provides guidance for the use of the method in interpretive studies.
17667421
Assessing undergraduate experience of continuous integration and test-driven development
A number of agile practices are included in software engineering curricula, including test-driven development. Continuous integration often is not included, despite it becoming increasingly common in industry to code, test, and integrate at the same time. This paper describes a study whereby software engineering undergraduates were given a short intensive experience of test-driven development with continuous integration using an environment that imitated a typical industrial circumstance. Assessment was made of students' agile experience rather than of project deliverables, using a novel set of process measures that examined students' participation and performance in agile testing. Results showed good participation by student pairs, and clear understanding of agile processes and configuration management. Future work will investigate automation of the assessment of continuous integration and configuration management server data.
11741283
Smooth interpolation of orientations with angular velocity constraints using quaternions
In this paper we present methods to smoothly interpolate 
orientations, given N rotational key frames of an 
object along a trajectory. The methods allow the user 
to impose constraints on the rotational path, such as 
the angular velocity at the endpoints of the trajectory. 
 
We convert the rotations to quaternions, and then 
spline in that non-Euclidean space. Analogous to the 
mathematical foundations of flat-space spline curves, 
we minimize the net “tangential acceleration” of the 
quaternion path. We replace the flat-space quantities 
with curved-space quantities, and numerically solve the 
resulting equation with finite difference and optimization 
methods.