Financial Domain-Specific Language Listing

The goal of this page is to provide a comprehensive listing of financial domain-specific languages and resources. Please submit additional resources via GitHub.

Actulus Modeling Language (AML)

The goal of the Actulus project is to "establish a platform for definition of advanced life insurance and pension products and for efficient computations on them." Actulus is a joint effort between the the IT University of Copenhagen and Edlund A/S. The project uses QuantAlea (see below) for GPU kernel creation.

Alea.cuBase (by QuantAlea)

Alea.cuBase is an F# framework for generating GPU kernels. It uses F# quotations for staging and composing kernels at run-time. It provides a "foundation to develop GPU aware domain specific languages."

AxLang (by Axoni)

AxLang is a DSL embedded in Scala for writing verifiable smart contracts for Ethereum. The language includes pre- and post-conditions to support design-by-contract-style verification.

BOScoin Trust Contracts

BOScoin uses the Web Ontology Language (OWL) and Timed Automata Language (TAL) to encode contracts on a blockchain.

CPL: Chart Pattern Language

DAML: Digital Asset Modeling Language

The Digital Asset Modeling Language (DAML) is a "Haskell-inspired functional programming language" that "provide[s] a new, verifiable way for parties to a transaction to prove updates to a distributed ledger while preserving data confidentiality. DAML codifies rights and obligations in a similar manner to traditional legal contracts and workflows, and is more easily interpretable by a non-technical audience than most programming languages."

DIESEL (by EDF Trading)

DIESEL is a language for representing energy derivatives to facilitate Monte Carlo pricing and analytics. The DSL consists of a combinator parser libary and algebraic data types with case classes.

EasyLanguage (by TradeStation)

EasyLanguage is a DSL for writing trading signals and strategies for the TradeStation platform.

ET++SwapsManager

Financial Industry Business Ontology (FIBO)

The Financial Industry Business Ontology is a joint effort by the Object Management Group (OMG) Financial Domain Task Force and the Enterprise Data Management (EDM) Council to provide a semantic model of financial instruments and business entities. The ontology is built using the W3C Resource Description Framework (RDF) and the OWL Web Ontology Language.

Financial Products Markup Language (FpML)

The Financial Products Markup Language (FpML) is an XML-based standard for the electronic dealing and processing over-the-counter (OTC) derivatives. FpML is developed under the guidance of ISDA, the International Swaps and Derivatives Association.

Functional Payout Framework (by Barclays Capital)

The Functional Payout Framework (FPF) uses a DSL embedded in Haskell to price and manage exotic derivatives. Trade payoffs are defined declaratively using combinators. The trade descriptions can be used to automatically generate pricing instructions (e.g., parameters for PDE-solving), human-readable TEX descriptions, and trade input forms.

Hedgehog (by Palantir)

Palantir’s Hedgehog Language is a Java-based language for exploring financial data, defining metrics, and defining trading stategies.

Hyperledger Composer

Hyperledger Composer is an open-source development environment and DSL for writing smart contracts on Hyperledger blockchains.

Imandra (by Aesthetic Integration)

Imandra is a suite of language and verification tools to model and verify properties of financial exchanges and Ethereum smart contracts. Imandra uses a subset of the OCaml language excluding features such as exceptions.

Ivy (by Chain)

Ivy is a programming language for the Chain Protocol / Virtual Machine. (Similar to how Solidity is the language for Ethereum.)

KolibriFX

KolibriFX has a language for defining foreign exchange (FX) trading strategies for execution on their cloud trading platform.

Marlowe (by Input Output)

Marlowe is an embedded Haskell language that targets financial contracts in the style of Peyton Jones et. al. (see MLFi below) on blockchains. Currently it targets Plutus-Core, a System-F inspired abstract machine that executes contracts on the Cardano Blockchain network. It includes a visual programming playground. Example contracts have been developed with the Algorithmic Contract Types Unified Standards (Actus).

Talks:

MLFi (by LexiFi)

MLFi is the OCaml-based contract modeling language underlying LexiFi’s pricing and operations management solutions. The language is based on combinators which allow contracts and market scenarios to be easily composed and analysed:

3rd-party blog posts and papers:

Money

Money is a Scala DSL for money-related operations. The language automatically performs conversions between currencies according to exchange rates specified at run-time.

Mu (by Standard Chartered Bank)

A strict variant of Haskell with other modifications (e.g., no support for recursion by default) to make it more accessible to end-user programmers.

Paradise (by Credit Suisse)

Paradise is a DSL embedded in Haskell for expressing computation typically modeled in Excel. Unlike calculators developed in Excel, Paradise components are reusable and retargettable (e.g., at both C# and Excel).

Pension Workbench (by Capgemini and Intentional Software)

The Capgemini Pension Workbench built with Intentional Software’s Language Workbench technology enables actuaries and pension analysts to specify and verify pension plans.

Pyramid

Pyramid is a Racket DSL for writing smart contracts for the Ethereum Virtual Machine.

Quant DSL (by the Appropriate Software Foundation)

Quant DSL is Python DSL for expressing financial contracts which can be evaluated against a price process (e.g., multi-market Black-Scholes). It follows the combinator approach outlined in the original MLFi paper, Composing Contracts: An Adventure in Financial Engineering.

Rholang (by Synereo)

Rholang (Reflective, Higher-Order process Language) is a smart contract language designed for Synereo’s blockchain technology, RChain.

Risla (by MeesPierson and Capgemini)

Risla is language for describing interest rate products.

SciFinance (by SciComp)

SciFinance is a system embedded in Mathematica for tranforming contraints, equations, and financial descriptors into "into highly efficient simulation codes" for C/C++/CUDA.

Solidity

Solidity is a Javascript-like language for writing smart contracts for Ethereum. Ethereum is a "decentralized platform that runs smart contracts" using blockchain technology.

StreamBase (by StreamBase Systems)

StreamBase is a Java-based graphical DSL for building event-driven high frequency trading (HFT) systems.

Stochastic Process Language (SPL)

Stochastic Process Language (SPL) is a language for representing stochastic processes for Monte Carlo simulations on parallel hardware.

ThetaML (by Thetaris)

ThetaML is a payoff description language based on the Theta calculus notation for stochastic and sequential processes. The execution of ThetaML is based on a virtual timing model; "The values of variables at a given line of code are evaluated at the model time associated with that line of code."

Tranche

Tranche is a DSL for modeling structured finance products that compiles to the Common Intermediate Language (CIL). The compiler is written in C# and is open-source.

Viper

Viper is an experimental contract language for the Ethereum platform with additional safety features, e.g., strong typing, bounds checking, and upper bounds on Ethereum gas required to make a function call.

Industry and Academic Groups

Commercial Users of Functional Programming (CUFP)

The annual Commercial Users of Functional Programming (CUFP) workshop is held in conjunction with the International Conference on Functional Programming (ICFP). The website includes videos of the talks, including some on finance:

DEVCON1

DEVCON1 was the first Ethereum developer’s conference. Ethereum is a "decentralized platform that runs smart contracts" using blockchain technology. The conference program included many talks on language design, design patterns, verification, etc.

High Performance Computing in Financial IT (HIPERFIT)

HIPERFIT is a collaboration between the University of Copenhagen and members of the Danish financial industry. The publications page includes many papers related to domain-specific languages for finance.

Smart Contracts Symposium

The Smart Contracts Symposium, organized by the Chamber of Digital Commerce was held on December 5, 2016 in New York City. Talks included:

Object Management Group (OMG) Financial Domain Task Force

The Object Management Group (OMG) Financial Domain Task Force is an industry group aimed at helping companies manage their financial data assets. The FDTF partners with standards organizations to help develop standards; a summary of the FDTF’s activities can be found at: http://fdtf.omg.org/Standards-Applications-Consumers.pdf.

Other Resources

Caml Trading. Yaron Minsky. 2012.

Compositional Specification of Commercial Contracts. Jesper Andersen et al. International Journal on Software Tools for Technology Transfer. 2006.

Domain Specific Languages for Financial Payoffs. Matthew Leslie (Bank of America Merrill Lynch). GPU Technology Conference. 2013. Slides.

A Generic Domain Specific Language for Financial Contracts. Anupam Mediratta. Masters Thesis. 2007

Linear Types for Cashflow Reengineering. Torben Æ Mogensen. Perspectives of System Informatics. 2003.

GPU Technology Conference 2013 Financial Track. Video recordings and slides on programming/using GPUs for financial applications.

Groovy on the Trading Desk. Jonathan Felch (Volant Trading LLC). 2010.

Modeling Islamic Finance Knowledge for Contract Compliance in Islamic Banking. Aziza Mamadolimova, Norbaitiah Ambiah, and Dickson Lukose. KES’11: International Conference on Knowledge-Based and Intelligent Information and Engineering Systems. 2011.

OO Technology In Large Financial Institutions (Workshop Report). Chris Laffra. OOPSLA '95: Object-Oriented Programming systems, Languages, and Applications. 1995.

Coverage and commentary of the SEC’s 2010 proposal to require Python contract descriptions: Philip Wadler, Lambda the Ultimate, Jayanth R. Varma