12155836
Using parameterized signatures to express modular structure
Module systems are a powerful, practical tool for managing the complexity of large software systems. Previous attempts to formulate a type-theoretic foundation for modular programming have been based on existential, dependent, or manifest types. These approaches can be distinguished by their use of different quantifiers to package the operations that a module exports together with appropriate implementation types. In each case, the underlying type theory is simple and elegant, but significant and sometimes complex extensions are needed to account for features that are important in practical systems, such as separate compilation and propagation of type information between modules.This paper presents a simple type-theoretic framework for modular programming using parameterized signatures. The use of quantifiers is treated as a necessary, but independent concern. Using familiar concepts of polymorphism, the resulting module system is easy to understand and admits true separate compilation. It is also very powerful, supporting high-order, polymorphic, and first-class modules without further extension.
2346657
ML Typing, Explicit Polymorphism and Qualified Types
The ML type system was originally introduced as a means of identifying a class of terms in a simple untyped language, often referred to as core-ML, whose evaluation could be guaranteed not to “go wrong”. In subsequent work, the terms of core-ML have also been viewed as a ‘convenient shorthand’ for programs in typed languages. Notable examples include studies of ML polymorphism and investigations of overloading, motivated by the use of type classes in Haskell.
14189118
A Theory of Qualified Types
• The ability to include local constraints as part of the type of an object. This enables the definition and use of polymorphic overloaded values within a program. ∗An earlier version of this paper was presented at the European Symposium on Programming, Rennes, France, February 1992 and appears in the conference proceedings published in Springer Verlag LNCS Volume 582. †Address from September 1992: Yale University, Department of Computer Science, P.O. Box 2158 Yale Station, New Haven, Connecticut 06520-2158, USA.
14632058
First-class polymorphism with type inference
Languages like ML and Haskell encourage the view of values as first-class entities that can be passed as arguments or results of functions, or stored as components of data structures. The same languages offer parametric polymorphism, which allows the use of values that behave uniformly over a range of different types. But the combination of these features is not supported-- polymorphic values are not first-class. This restriction is sometimes attributed to the dependence of such languages on type inference, in contrast to more expressive, explicitly typed languages, like System F, that do support first-class polymorphism.This paper uses relationships between types and logic to develop a type system, FCP, that supports first-class polymorphism, type inference, and also first-class abstract datatypes. The immediate result is a more expressive language, but there are also long term implications for language design.
6608650
Dictionary-free overloading by partial evaluation
One of the most novel features in the functional programming language Haskell is the system oftype classes used to support a combination of overloading and polymorphism. Current implementations of type class overloading are based on the use ofdictionary values, passed as extra parameters to overloaded functions. Unfortunately, this can have a significant effect on run-time performance, for example, by reducing the effectiveness of important program analyses and optimizations.This paper describes how a simple partial evaluator can be used to avoid the need for dictionary values at run-time by generating specialized versions of overloaded functions. This eliminates the run-time costs of overloading. Furthermore, and somewhat surprisingly given the presence of multiple versions of some functions, for all of the examples that we have tried so far, specialization actually leads to a reduction in the size of compiled programs.
15051631
Type Classes with Functional Dependencies
Type classes in Haskell allow programmers to define functions that can be used on a set of different types, with a potentially different implementation in each case. For example, type classes are used to support equality and numeric types, and for monadic programming. A commonly requested extension to support 'multiple parameters' allows a more general interpretation of classes as relations on types, and has many potentially useful applications. Unfortunately, many of these examples do not work well in practice, leading to ambiguities and inaccuracies in inferred types and delaying the detection of type errors. 
 
This paper illustrates the kind of problems that can occur with multiple parameter type classes, and explains how they can be resolved by allowing programmers to specify explicit dependencies between the parameters. A particular novelty of this paper is the application of ideas from the theory of relational databases to the design of type systems.
802922
Exploring Small Screen Digital Library Access with the Greenstone Digital Library
In recent years, the use of small screen devices has multiplied rapidly. This paper covers a number of different issues which arise when digital libraries are used in combination with such displays. Known limitations of small screens are presented to the Digital Library community. Two evaluations of pilot small-screen DL systems are presented, with some unexpected cultural and socio-technical concerns which arose. The pilot systems also demonstrate the delivery of small-screen access using an existing popular DL system.
40903922
CPJazz-a software framework for vehicle systems integration and wireless connectivity
Integration of new technology into vehicles continues at a rapid pace. New technology includes not only deeply embedded devices for vehicle systems management but also operator interfaces, such as navigation systems, voice-recognition/text-to-speech interfaces and integration of consumer electronic appliances such as the personal digital assistant (PDA). Standardization efforts have attempted to bring these technologies together through common buses, but because these devices have different capabilities and requirements of their own, this is most likely impossible. The CPJazz framework was designed to provide integration of disparate devices and protocols through a dynamic and scalable component-based architecture. In this paper, the capabilities and services provided by CPJazz for vehicle-based software integrators are discussed, as well as the identification of key scenarios that demonstrate its contributions to the vehicle and wireless environment.
14775203
Supporting Information Structuring in a Digital Library
In this paper we present Garnet, a spatial hypertext interface to a digital library. Spatial hypertext systems support information structuring the organisation of documents performed by a user to complement their information seeking. In the past, spatial hypertext systems have suffered from poor connectivity with information sources such as digital libraries. Conversely, digital libraries have provided strong support for document retrieval whilst offering little support for information structuring over the retrieved documents. Garnet provides an integrated environment for both seeking and organising information. We report on the results of a user study that elicits the response of users to a combined seeking and structuring environment. The feasibility of exploiting the information structuring of users to identify the interests of users is also investigated.
18996618
The Production of Volume Data from Triangular Meshes Using Voxelisation
Voxelisation is the term given to the process of converting data from one source type into a three dimensional volume of data values. The techniques known collectively as volume visualisation can then be applied to the data in order to produce a graphical representation of the object. This paper gives a practical approach to the voxelisation of data in the form of triangular meshes, and demonstrates the use of the method on various datasets. Visualisation is achieved by a method also described in the paper.
23406227
Toward an understanding of similarity judgments for music digital library evaluation
This paper presents an analysis of 7,602 similarity judgments collected for the Symbolic Melodic Similarity (SMS) and Audio Music Similarity and Retrieval (AMS) evaluation tasks in the 2006 Music Information Retrieval Evaluation eXchange (MIREX). We discuss the influence of task definitions, as well as evaluation metrics on user perceptions of music similarity, and provide recommendations for future Music Digital Library/Music Information Retrieval research pertaining to music similarity.