Results 1 - 10
of
10
Grammatical Framework: A Type-Theoretical Grammar Formalism
, 2003
"... Grammatical Framework (GF) is a special-purpose functional language for defining grammars. It uses a Logical Framework (LF) for a description of abstract syntax, and adds to this a notation for defining concrete syntax. GF grammars themselves are purely declarative, but can be used both for lineariz ..."
Abstract
-
Cited by 56 (16 self)
- Add to MetaCart
Grammatical Framework (GF) is a special-purpose functional language for defining grammars. It uses a Logical Framework (LF) for a description of abstract syntax, and adds to this a notation for defining concrete syntax. GF grammars themselves are purely declarative, but can be used both for linearizing syntax trees and parsing strings. GF can describe both formal and natural languages. The key notion of this description is a grammatical object, which is not just a string, but a record that contains all information on inflection and inherent grammatical features such as number and gender in natural languages, or precedence in formal languages. Grammatical objects have a type system, which helps to eliminate run-time errors in language processing. In the same way as an LF, GF uses...
Real-Time FRP
- IN THE INTERNATIONAL CONFERENCE ON FUNCTIONAL PROGRAMMING (ICFP ’01
, 2001
"... Functional reactive programming (FRP) is a declarative programming paradigm where the basic notions are continuous, time-varying behaviors and discrete, event-based reactivity. FRP has been used successfully in many reactive programming domains such as animation, robotics, and graphical user interfa ..."
Abstract
-
Cited by 26 (4 self)
- Add to MetaCart
Functional reactive programming (FRP) is a declarative programming paradigm where the basic notions are continuous, time-varying behaviors and discrete, event-based reactivity. FRP has been used successfully in many reactive programming domains such as animation, robotics, and graphical user interfaces. The success of FRP in these domains encourages us to consider its use in real-time applications, where it is crucial that the cost of running a program be bounded and known before run-time. But previous work on the semantics and implementation of FRP was not explicitly concerned about the issues of cost. In fact, the resource consumption of FRP programs in the current implementation is often hard to predict. As a first step
Composing contracts: an adventure in financial engineering - Functional Pearl
, 2000
"... Financial and insurance contracts do not sound like promising territory for functional programming and formal semantics, but in fact we have discovered that insights from programming languages bear directly on the complex subject of describing and valuing a large class of contracts. We introduce a ..."
Abstract
-
Cited by 24 (0 self)
- Add to MetaCart
Financial and insurance contracts do not sound like promising territory for functional programming and formal semantics, but in fact we have discovered that insights from programming languages bear directly on the complex subject of describing and valuing a large class of contracts. We introduce a combinator library that allows us to describe such contracts precisely, and a compositional denotational semantics that says what such contracts are worth. We sketch an implementation of our combinator library in Haskell. Interestingly, lazy evaluation plays a crucial role. 1 Introduction Consider the following nancial contract, C: the right to choose on 30 June 2000 between D1 Both of: D11 Receive $100 on 29 Jan 2001. D12 Pay $105 on 1 Feb 2002. D2 An option exercisable on 15 Dec 2000 to choose one of: D21 Both of: D211 Receive $100 on 29 Jan 2001. D212 Pay $106 on 1 Feb 2002. D22 Both of: D221 Receive $100 on 29 Jan 2001. D222 Pay $112 on 1 Feb 2003. The details of this contra...
An Embedded Language Framework for Hardware Compilation
- DESIGNING CORRECT CIRCUITS
, 2002
"... Various languages have been proposed to describe synchronous hardware at an abstract, yet synthesisable level. We propose a uniform framework within which such languages can be developed, and combined together for simulation, synthesis, and verification. We do this by embedding the languages in Lava ..."
Abstract
-
Cited by 15 (8 self)
- Add to MetaCart
Various languages have been proposed to describe synchronous hardware at an abstract, yet synthesisable level. We propose a uniform framework within which such languages can be developed, and combined together for simulation, synthesis, and verification. We do this by embedding the languages in Lava --- a hardware description language (HDL), itself embedded in the functional programming language Haskell. The approach allows us to easily experiment with new formal languages and language features, and also provides easy access to formal verification tools aiding program verification.
Generative Programming and Active Libraries (Extended Abstract)
, 1998
"... We describe generative programming, an approach to generating customized programming components or systems, and active libraries, which are based on this approach. In contrast to conventional libraries, active libraries may contain metaprograms implementing domainspecific code generation, optimi ..."
Abstract
-
Cited by 13 (4 self)
- Add to MetaCart
We describe generative programming, an approach to generating customized programming components or systems, and active libraries, which are based on this approach. In contrast to conventional libraries, active libraries may contain metaprograms implementing domainspecific code generation, optimizations, debugging, profiling and testing. Several working examples (Blitz++, GMCL, Xroma) are presented to illustrate the potential of active libraries. We discuss relevant implementation technologies.
How to Write a Financial Contract
"... valuation semantics. First, we will show how to translate an arbitrary contract, written in our language, into a value process, together with a handful of operations over these processes. These processes correspond directly to the mathematical and stochastic machinery used by nancial experts. ..."
Abstract
-
Cited by 8 (0 self)
- Add to MetaCart
valuation semantics. First, we will show how to translate an arbitrary contract, written in our language, into a value process, together with a handful of operations over these processes. These processes correspond directly to the mathematical and stochastic machinery used by nancial experts.
FVision: A Declarative Language for Visual Tracking
, 2001
"... . Functional programming languages are not generally associated with computationally intensive tasks such as computer vision. We show that a declarative programming language like Haskell is eective for describing complex visual tracking systems. We have taken an existing C++ library for computer ..."
Abstract
-
Cited by 8 (1 self)
- Add to MetaCart
. Functional programming languages are not generally associated with computationally intensive tasks such as computer vision. We show that a declarative programming language like Haskell is eective for describing complex visual tracking systems. We have taken an existing C++ library for computer vision, called XVision, and used it to build FVision (pronounced \ssion"), a library of Haskell types and functions that provides a high-level interface to the lower-level XVision code. Using functional abstractions, users of FVision can build and test new visual tracking systems rapidly and reliably. The use of Haskell does not degrade system performance: computations are dominated by low-level calculations expressed in C++ while the Haskell \glue code" has a negligible impact on performance. FVision is built using functional reactive programming (FRP) to express interaction in a purely functional manner. The resulting system demonstrates the viability of mixedlanguage programmin...
Program Generation, Termination, and Binding-time Analysis
, 2002
"... Recent research suggests that the goal of fully automatic and reliable program generation for a broad range of applications is coming nearer to feasibility. However, several interesting and challenging problems remain to be solved before it becomes a reality. Solving them is also necessary, if we ho ..."
Abstract
-
Cited by 7 (0 self)
- Add to MetaCart
Recent research suggests that the goal of fully automatic and reliable program generation for a broad range of applications is coming nearer to feasibility. However, several interesting and challenging problems remain to be solved before it becomes a reality. Solving them is also necessary, if we hope ever to elevate software engineering from its current state (a highly-developed handiwork) into a successful branch of engineering, capable of solving a wide range of new problems by systematic, well-automated and well-founded methods.
Design of High Performance Financial Modeling Environment
- Parallel Computing
, 2000
"... The aim of our system is to generate solution code from a high level specification of a financial instrument. Solution code calculates prices and hedge ratios which are partial derivatives of the price with respect to various parameters. The user manipulates a representation of the problem at the do ..."
Abstract
-
Cited by 3 (1 self)
- Add to MetaCart
The aim of our system is to generate solution code from a high level specification of a financial instrument. Solution code calculates prices and hedge ratios which are partial derivatives of the price with respect to various parameters. The user manipulates a representation of the problem at the domain level, with the complexities of the computer implementation hidden. As many of the problems have no analytical solution, symbolic transformations manipulate the equations specifying the stochastic model and instrument into forms that can be solved numerically. Techniques such as finite differences, spectral methods and Monte Carlo simulation are provided in sequential and parallel versions. The mathematical correctness of the transformation steps is examinable as is the degree of error introduced by approximating transformations. We include examples for the Black-Scholes model and for the Hull White stochastic volatility model. A Linux cluster is used to price an Asian option using the Hull White SV model.
Guaranteed Optimization for Domain-Specific Programming
, 2003
"... For software engineering reasons, it is often best to provide domain-specific programming environments in the context of a general-purpose language. In our view general-purpose languages are not yet general-purpose enough, and progress needs to be made before we can provide domain-specific languages ..."
Abstract
-
Cited by 1 (0 self)
- Add to MetaCart
For software engineering reasons, it is often best to provide domain-specific programming environments in the context of a general-purpose language. In our view general-purpose languages are not yet general-purpose enough, and progress needs to be made before we can provide domain-specific languages that are both fast and safe. We outline some goals in this regard, and describe a possible implementation technology: guaranteed optimization, a technique for building compilers that provide proven guarantees of what optimizations they perform. Such optimizers can provide capabilities similar to staged languages, and thus provide the relevant performance improvements. They can also function as decision procedures, suggesting an approach of 'optimizers as theorem provers,' in which optimizing compilers can be used to check domains-pecific safety properties and check proofs embedded in programs.

