To save content items to your account,
please confirm that you agree to abide by our usage policies.
If this is the first time you use this feature, you will be asked to authorise Cambridge Core to connect with your account.
Find out more about saving content to .
To save content items to your Kindle, first ensure no-reply@cambridge.org
is added to your Approved Personal Document E-mail List under your Personal Document Settings
on the Manage Your Content and Devices page of your Amazon account. Then enter the ‘name’ part
of your Kindle email address below.
Find out more about saving to your Kindle.
Note you can select to save to either the @free.kindle.com or @kindle.com variations.
‘@free.kindle.com’ emails are free but can only be saved to your device when it is connected to wi-fi.
‘@kindle.com’ emails can be delivered even when you are not connected to wi-fi, but note that service fees apply.
We describe the Edinburgh SML Library and draw lessons from its development. These lessons are of two kinds. The first concerns how to use SML to write a library, and shows some of the design choices that have to be considered. Most of the paper concerns this topic. The second kind of lesson concerns ways in which the language hinders the construction of a library. We suggest some changes to the language as a result of this experience, the most important being the addition of higher-order functors. We also suggest that language designers should consider the needs of libraries early on in the design of a language.
Mogensen has exhibited a very compact partial evaluator for the pure lambda calculus, using binding-time analysis followed by specialization. We give a correctness criterion for this partial evaluator and prove its correctness relative to this specification. We show that the conventional properties of partial evaluators, such as the Futamura projections, are consequences of this specification. By considering both a flow analysis and the transformation it justifies together, this proof suggests a framework for incorporating flow analyses into verified compilers.
Self-applicable specializers have been used successfully to automate the generation of compilers. Specializers are often rather sophisticated, for which reason one would like to adapt and transform them with the aid of the computer. But how to automate this process? The answer to this question is given by three specializer projections. While the Futamura projections define the generation of compilers from interpreters, the specializer projections define the generation of specializers from interpreters. We discuss the potential applications of the specializer projections, and argue that their realization is a real touchstone for the effectiveness of the specialization principle. In particular, we discuss generic specializers, bootstrapping of subject languages and the generation of optimizing specializers from interpretive specifications. The Futamura projections are regarded as a special case of the specializer projections. Recent results confirm that the specializer projections can be performed in practice using partial evaluators.
We study the type inference problem for a system with type classes as in the functional programming language Haskell. Type classes are an extension of ML-style polymorphism with overloading. We generalize Milner's work on polymorphism by introducing a separate context constraining the type variables in a typing judgement. This leads to simple type inference systems and algorithms which closely resemble those for ML. In particular, we present a new unification algorithm which is an extension of syntactic unification with constraint solving. The existence of principal types follows from an analysis of this unification algorithm.
A simple Idealized Algol is considered, based on Reynolds's ‘essence of Algol’. It is shown that observational equivalence in this language conservatively extends observational equivalence in its assignment-free functional sublanguage.
Pattern matching in modern functional programming languages is tied to the representation of data. Unfortunately, this is incompatible with the philosophy of abstract data types.
Two proposals have been made to generalize pattern matching to a broader class of types. The laws mechanism of Miranda allows pattern matching with non-free algebraic data types. More recently, Wadler proposed the concept of views as a more general solution, making it possible to define arbitrary mappings between a physical implementation and a view supporting pattern matching. Originally, it was intended to include views in the new standard lazy functional programming language Haskell.
Laws and views each offer important advantages, particularly with respect to data abstraction. However, if not used with great care, they also introduce serious problems in equational reasoning. As a result, laws have been removed from Miranda and views were not included in the final version of Haskell.
We propose a third approach which unifies the laws and views mechanisms while avoiding their problems. Philosophically, we view pattern matching as a bundling of case recognition and component selection functions instead of a method for inverting data construction. This can be achieved by removing the implied equivalence between data constructors and pattern constructors. In practice, we allow automatic mapping into a view but not out of the view. We show that equational reasoning can still be used with the resulting system. In fact, equational reasoning is easier, since there are fewer hidden traps.
In combinator parsing, the text of parsers resembles BNF notation. We present the basic method, and a number of extensions. We address the special problems presented by white-space, and parsers with separate lexical and syntactic phases. In particular, a combining form for handling the ‘offside rule’ is given. Other extensions to the basic method include an ‘into’ combining form with many useful applications, and a simple means by which combinator parsers can produce more informative error messages.
The paper explores the application of a lazy functional language, Haskell, to a series of grid-based scientific problems—solution of the Poisson equation, and Monte Carlo simulation of two theoretical models from statistical and particle physics. The implementations introduce certain abstractions of grid topology, making extensive use of the polymorphic features of Haskell. Updating is expressed naturally through use of infinite lists, exploiting the laziness of the language. Evolution of systems is represented by arrays of interacting streams.
In the period 1986–1991, experiments have been carried out with an introductory course in computer programming, based on functional programming. Due to thorough educational design and evaluation, a successful course has been developed. This has led to a revision of the computer programming education in the first year of the computer science curriculum at the University of Twente.
This article describes the approach, the aim of the computer programming course, the outline and subject matter of the course, and the evaluation. Educational research has been done to assess the quality of the course.
For numeral systems in untyped λ-calculus the definability of a successor, a predecessor and a test for zero implies the definability of all recursive functions on that system. Towards a disproof of the converse statement, H. P. Barendregt and the author constructed a numeral system consisting of unsolvable λ-terms, being adequate for unary functions. Then, independently, B. Intrigila found an analogous system for all computable functions.
The aim of this paper is to determine the optimal trajectory and maximum payload of flexible link manipulators in point-to-point motion. The method starts with deriving the dynamic equations of flexible manipulators using combined Euler–Lagrange formulation and assumed modes method. Then the trajectory planning problem is defined as a general form of optimal control problem. The computational methods to solve this problem are classified as indirect and direct techniques. This work is based on the indirect solution of open-loop optimal control problem. Because of the offline nature of the method, many difficulties like system nonlinearities and all types of constraints can be catered for and implemented easily. By using the Pontryagin's minimum principle, the obtained optimality conditions lead to a standard form of a two-point boundary value problem solved by the available command in MATLAB®. In order to determine the optimal trajectory a computational algorithm is presented for a known payload and the other one is then developed to find the maximum payload trajectory. The optimal trajectory and corresponding input control obtained from this method can be used as a reference signal and feedforward command in control structure of flexible manipulators. In order to clarify the method, derivation of the equations for a planar two-link manipulator is presented in detail. A number of simulation tests are performed and optimal paths with minimum effort, minimum effort-speed, maximum payload, and minimum vibration are obtained. The obtained results illustrate the power and efficiency of the method to solve the different path planning problems and overcome the high nonlinearity nature of the problems.
The legacy of Stockhausen's role in developing the art and practice of electroacoustic music is significant, in terms of both the repertory of works he produced for the medium from the early 1950s right up to his death in 2007, and also the supporting documentation he has provided in terms of scores and technical records and his many writings on the medium over the years. What emerges from this documentation is a fascinating and at times significant insight into his compositional methods and underlying aesthetic, itself shaped and influenced by the changing nature of the technology itself. Whereas his earlier works have been subject to close scrutiny in this context far less attention has been paid to those composed in more recent years, involving the use of digital technologies. A key consideration in this context is the distinctive and highly individual nature of his approach to the resources at his disposal, in turn driven by aesthetic considerations which of necessity become embedded in the practicalities of realisation. Thus the study of the changing nature of his techné as new tools became available becomes a crucial consideration. This article examines these issues in the context of Octophonie (1991) and with particular reference to the concepts and practicalities addressed in his use of three-dimensional spatialisation.
This article aims to bring to light the links between technology and aesthetics in the first electroacoustic pieces written between 1953 and 1966 by Karlheinz Stockhausen. After reviewing the technological differences of the two aesthetics of musique concrète (France) and elektronische Musik (Germany), it is possible to see how Stockhausen transcended this distinction by gradually creating more diversified material, leading to a ‘world material’, independent from the tools used. This comes along with a more global approach to the sound. The composer, by an appropriate use of the equipment, does not seek an individual control of each element or each parameter, but has a larger-scale view, in which time units are longer and are considered as a whole. This conception, while remaining as precise as an analytical approach, involves a rethinking of the time development, proposed by Stockhausen as the Momentform, a new musical form in which each part is independent and does not constitute the continuation of the preceding one. This reflection on non-linearity in a work, and on relative perception of time, is a key to understanding Stockhausen's music.
How does production and spatial environment shape the aesthetics of electroacoustic music? Can the physical space, technology and network of relationships associated with studio activities environment be deeply embedded in the actual composition itself? Using my 12-channel electronic piece Migration as an example, this article demonstrates how the ‘materiality’ of the former Studio für Elektronische Musik of the WDR Radio, Cologne, Germany influenced the conception of ‘circular sound space’. Space in electroacoustic music is considered as embodiment of gestural experience driven by performance and composition. The discussion gives insights into the development of circular approaches of sound space in relationship to analogue and digital machinery. Particular attention is paid to the correlation between sound synthesis and sound space as a structuring principle of multi-channel electroacoustic music composition.
The HIEMPA project combined a team of people with technical, artistic, environmental and cultural expertise towards an artistic outcome aiming to extend the New Zealand sonic art tradition. The work involved collecting audio samples from the aquascape of the Ruakuri Caves and Nature Reserve in Waitomo, South Waikato, New Zealand; and samples of a variety of pütorino – a New Zealand Mäori wind instrument. Following a machine learning analysis of this audio material and an analysis of the performance material, hybrid digital instruments were built and mapped to suitable hardware triggers. The new instruments are playable in realtime, along with the electroacoustic manipulation of pütorino performances. The project takes into account the environmental and cultural significance of the source material, with the results to be released as a set of compositions. This paper discusses the background research and process of the project.