Results 1 -
8 of
8
Designing and Implementing Combinator Languages
- Third Summer School on Advanced Functional Programming, volume 1608 of LNCS
, 1999
"... this paper we will assume the availablity of a set of parsing combinators, that enables us to coinstruct such a mapping almost without e#ort. ..."
Abstract
-
Cited by 31 (7 self)
- Add to MetaCart
this paper we will assume the availablity of a set of parsing combinators, that enables us to coinstruct such a mapping almost without e#ort.
Demand-driven Search in Functional Logic Programs
, 1998
"... In this paper we discuss the advantage of lazy functional logic languages to solve search problems. We show that the lazy evaluation strategy of such languages can be easily exploited to implement a solver that explores only the dynamically demanded parts of the search space. In contrast to pure log ..."
Abstract
-
Cited by 6 (3 self)
- Add to MetaCart
In this paper we discuss the advantage of lazy functional logic languages to solve search problems. We show that the lazy evaluation strategy of such languages can be easily exploited to implement a solver that explores only the dynamically demanded parts of the search space. In contrast to pure logic programming, the use of nondeterministic functions enables a modular and simple implementation without the risk of floundering. Furthermore, a local encapsulation of search is useful to avoid the combinatorial explosion of the demanded search space. The necessary features (laziness, non-deterministic functions, encapsulated search) are available in Curry, a new declarative language intended to combine functional and logic programming techniques. We demonstrate the advantage of this approach with a musical application implemented in Curry: the generation of appropriate chords for the accompaniment of a given melody.
Dance: A declarative language for the control of humanoid robots
, 2003
"... Robots are becoming increasingly common in, and important to, many commercial, industrial, and military applications. This paper focuses on how to program humanoid robots, and in particular how to program their movements and interactions as easily and as effectively as possible. The core of this eff ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
Robots are becoming increasingly common in, and important to, many commercial, industrial, and military applications. This paper focuses on how to program humanoid robots, and in particular how to program their movements and interactions as easily and as effectively as possible. The core of this effort is the design of a domain-specific language called Dance that is highly abstract, easy to use, yet has enough expressive power to describe a wide range of useful robot movement. Dance consists of a non-reactive base inspired by Labanotation, a graphical notation for human motion, and a reactive layer based on Yampa, our latest incarnation of functional reactive programming. The reactive layer is structured using arrows, a generalization of monads, and gives a robot the ability to react to its environment in critical ways. Dance is also independent of the robot platform being used. Our target is two humanoid robots being designed and constructed in the Yale Vision and Robotics Laboratory. We have also written a simulator in which a 3D-rendering of a humanoid robot is controlled by a Dance program. 1
Constraint Application with Higher-Order Programming for Modeling Music Theories
, 2010
"... Modeling music theories with computer programs has attracted composers and scholars for a long time. On the one hand, the resulting programs can serve as algorithmic composition tools. On the other hand, such an approach leads to a better understanding of existing as well as newly developed theories ..."
Abstract
-
Cited by 2 (2 self)
- Add to MetaCart
Modeling music theories with computer programs has attracted composers and scholars for a long time. On the one hand, the resulting programs can serve as algorithmic composition tools. On the other hand, such an approach leads to a better understanding of existing as well as newly developed theories, which in turn can lead to a better understanding of music, as well as to better ways to retrieve music from databases. Constraint programming (Apt 2003) has often been used to create computational models of music theories and composition. Constraint-based harmonization systems were surveyed by Pachet and Roy (2001); other examples include purely rhythmic tasks (Sandred 2003), Fuxian counterpoint (Schottstaedt 1989), Ligeti-like textures (Chemillier and Truchet 2001; Laurson and Kuuskankare 2001), and instrument-specific writing (Laurson and
An Embedded Geometrical Language in Haskell: Construction, Visualisation, Proof
"... Abstract. Geometric constructions based on compass and straight-edge have been thoroughly studied and explored. In this paper, we present a language embedded in Haskell, to describe, manipulate and analyse such constructions. The use of embedded languages has been explored in various specialised dom ..."
Abstract
- Add to MetaCart
Abstract. Geometric constructions based on compass and straight-edge have been thoroughly studied and explored. In this paper, we present a language embedded in Haskell, to describe, manipulate and analyse such constructions. The use of embedded languages has been explored in various specialised domains, and have been shown to be an excellent frontend to describe such specialised programs, enabling, for instance, the description of families of constructions as functions in the host language, which produce different specialised programs based on input parameters. In particular, we are interested, not only in providing a framework within which one may describe a construction and families of similar constructions in an algorithmic fashion, but also in providing facilities to both test and verify certain properties of constructions, such as equivalence of constructions, or equality of angles and distances in a construction. 1
The Design, Implementation and Use of Domain Specific Languages
, 2004
"... Domain Specific Languages DSLs, aim to enhance the productivity of an application developer. However, a domain specific application developer need not have a thorough understanding of a more general programming language or paradigm. DSLs are designed for a particular engineering domain, facilitati ..."
Abstract
- Add to MetaCart
Domain Specific Languages DSLs, aim to enhance the productivity of an application developer. However, a domain specific application developer need not have a thorough understanding of a more general programming language or paradigm. DSLs are designed for a particular engineering domain, facilitating quick and easy development of programs that are easy to understand and maintain. DSLs have design goals very different from general programming languages, their specificity to a domain means that their syntax must reflect the notation and terminology already in use. The degree to which they achieve this is reflected by a domain engineer's familiarity with the language and ability to use it effectively. This literature survey highlights the decision path for developing a DSL as part of a some other engineering undertaking, as well as some suggested patterns of design provided by researchers in this field. These DSL design patterns aim to enhance familiar software engineering properties such as software re-use and modularity. Many of the design issues that are discussed are illustrated by providing overviews of prior DSL design case studies. Case studies have been drawn from some unlikely fields such as computer music generation, animation and distributed application development. On exchange at the Baskin School of Engineering, University of California Santa Cruz 1
Developing DSLs using combinators. A design pattern
"... Abstract—The development of domain-specific languages (DSLs) is considered by many authors as a hard task. To simplify the design of DSLs we describe a design pattern based on the combinators technique, which can also provide guidelines for previous domain analysis phase because it is based on equat ..."
Abstract
- Add to MetaCart
Abstract—The development of domain-specific languages (DSLs) is considered by many authors as a hard task. To simplify the design of DSLs we describe a design pattern based on the combinators technique, which can also provide guidelines for previous domain analysis phase because it is based on equational reasoning over the domain knowledge. Combinators is a common technique from functional programming to write programs. It was used many times to implement domain-specific embedded languages (DSELs) but that implementation approach is not the only one. In this paper we present the pattern together with the underlying and basic ideas behind it. We also show benefits of using it and illustrate the use of this pattern with some examples. Index Terms—DSLs, combinators, design patterns. I.
Higher-Order Programming for Modeling Music Theories
"... Modeling music theories with computer programs has attracted composers and scholars for a long time. On the one hand, the resulting programs can serve as algorithmic composition tools. On the other hand, such an approach leads to a better understanding of existing as well as newly developed theories ..."
Abstract
- Add to MetaCart
Modeling music theories with computer programs has attracted composers and scholars for a long time. On the one hand, the resulting programs can serve as algorithmic composition tools. On the other hand, such an approach leads to a better understanding of existing as well as newly developed theories, which in turn can lead to a better understanding of music, as well as to better ways to retrieve music from databases. Constraint programming (Apt 2003) has often been used to create computational models of music theories and composition. Constraint-based harmonization systems were surveyed by Pachet and Roy (2001); other examples include purely rhythmic tasks (Sandred 2003), Fuxian counterpoint (Schottstaedt 1989), Ligeti-like textures (Chemillier and Truchet 2001; Laurson and Kuuskankare 2001), and instrument-specific writing (Laurson and

