Using a Domain-Specific Language for Financial Engineering
by Arie van Deursen
In order to reduce the lead time to market for new types of financial
products, it is crucial that a banks financial and management
information systems can be quickly adapted. The use of domain-specific
languages has proved a valuable tool to achieve this required
flexibility.
Financial engineering deals, amongst others, with interest rate
products. These products are typically used for inter-bank trade,
or to finance company take-overs involving triple comma figures
in multiple currencies. Crucial for such transactions are the
protection against and the well-timed exploitation of risks coming
with interest rate or currency exchange rate fluctuations.
The simplest interest rate product is the loan: a fixed amount
in a certain currency is borrowed for a fixed period at a given
interest rate. More complicated products, such as the financial
future, the forward rate agreement, or the capped floater, all
aim at risk reallocation. Banks frequently invent new ways to
achieve this, giving rise to more and more interest rate products.
This, however, affects the banks automated systems, which perform
contract administration and provide management information concerning
the banks on- and off-balance position, interest and exchange
rate risks, etc.
To make the required modifications to these systems, bank MeesPierson
and software house CAP Gemini decided to describe the essence
of their interest rate products in a high-level language, and
to generate the software automatically from these product descriptions.
To that end, a small domain-specific language was designed, especially
suited to describe so-called cash-flows following from products.

The use of this language is illustrated in the Figure. At the
heart of the system is a compiler for the domain-specific language.
Given a high-level product description, it is able to generate
automatically data structures in VSAM format, data entry screens
in CICS format, and COBOL routines for registering modifications
in the product or for yielding management information.
The key enabler to the compiler is a COBOL library formalizing
domain concepts such as cash flows, intervals, interest payment
schemes, date manipulations, etc. The domain-specific language
provides ways to combine these concepts into products, using a
notation that is familiar to financial engineers. The language
has been developed in collaboration with CWI, using the ASF+SDF
Meta-Environment to construct a prototype tool suite.
The language has been included in Cap Geminis Financial Product
System FPS, which is in use at several Dutch financial institutions.
Time to market has gone down from months to days, and IT cost
reductions of up to 50% have been reported.
At the time of writing, CWI is involved in a major research project
addressing the tooling, application, and methodology of domain-specific
languages in general a project that is carried out as part of
the Dutch Telematics Institute, in collaboration with several
Dutch businesses.
Please contact:
Arie van Deursen - CWI
Tel: +31 20 592 4075
E-mail: arie@cwi.nl