LexiFi uses OCaml as its primary implementation language. LexiFi maintains its own version of the language, with powerful extensions, and contributes actively to the evolution of the official version. LexiFi's full control over its implementation stack enables tremendous flexibility in making its technology available in a wide range of technical environments.
LexiFi maintains a blog about OCaml.
LexiFi is looking to hire talented OCaml developers. If you are interested, please apply by sending an email to firstname.lastname@example.org.
OCaml and LexiFi's products
In addition to using OCaml internally, LexiFi also exposes modified OCaml compilers as key components of the LexiFi platform. Most of the LexiFi platform components, including MLFi (LexiFi's Contract Description Language), are shipped as OCaml libraries, and made available to other languages via various means. Several OCaml features, such as user-defined algebraic datatypes and module signatures, work together to make the interfaces for these libraries clean, robust, and easy to discover.
LexiFi's end-user application, LexiFi Apropos, can be extended with new financial instruments, models or analytics. The extensions take the form of user-written addins written in OCaml. Addins can be edited directly in the application itself through its integrated development environment. Only a limited subset of OCaml is needed to make good use of LexiFi's libraries when writing new addins. Users with some mathematical background can quickly become familiar enough with the language to create new financial instruments even if they are not professional programmers.
LexiFi's embeddable component, called Instrument Box, enables third-party technology providers to benefit from LexiFi technologies. Several of such customers have grown internal teams of OCaml developers after their integration of Instrument Box.
Customize your system with LexiFi Apropos' integrated development environment.
Click image to enlarge.
What is OCaml?
OCaml is a modern open source programming system. The project has received continuous support from INRIA (The French National Institute for Research in Computer Science and Control) over the past thirty years and is still actively maintained and extended.
OCaml combines the three prevalent programming paradigms (functional, imperative and object-oriented) in powerful ways. Its strong type system helps writing solid code and ensures tremendous agility during code refactoring and evolution. In addition to its high-level features, OCaml is also known for its high performance (efficient runtime system and native compilers).
Contributions to OCaml
LexiFi was one of the first industrial users of OCaml and contributes actively to the evolution of the language and its ecosystem.
LexiFi has developed and contributed back several features to OCaml (most of them have been field-tested on LexiFi custom version of OCaml before their upstream integration):
- Native dynlink (OCaml 3.11).
- First-class modules (OCaml 3.12).
- Warnings for unused components (OCaml 4.00).
- Explict method override (OCaml 4.00).
- Built-in meta-programming hooks: ppx and extension points (OCaml 4.02).
- Backend support for match-with-exception (OCaml 4.02).
- Constructors with inline record arguments (OCaml 4.03).
- Several improvements to the backend (sharing/propagation/static allocation of structured constants; better representation of constant exceptions; compilation of optional arguments).
In addition, LexiFi has released several free and open-source tools for the OCaml community:
- flexdll: emulate the dlopen POSIX API under Windows; used to power OCaml's support for native dynlink under Windows.
- csml: a binding generator to bridge the gap between OCaml and the Microsoft .Net Framework.
- sedlex: a Unicode-friendly lexer generator.
- ppx_tools: tools for authors of syntatic tools.
LexiFi is a member of the Caml Consortium, which provides funding to INRIA and the Gallium team.
LexiFi sponsors events such as the OCaml Users in Paris meetups.
LexiFi has provided funding to third-parties to extend OCaml:
- -bin-annot and .cmt files (OCaml 4.00).
- GADTS (OCaml 4.00).
- Runtime types (in progress).
- Merger of the two AT&T and Intel assembler backends for x86 and amd64 (OCaml 4.03).
Why did LexiFi select a functional programming language to implement its products?
OCaml is exceptionally well adapted to the implementation of symbolic manipulation tools such as domain specific languages. LexiFi found that OCaml was the most effective tool for developing its financial contract description technology.
It turned out that OCaml is also a great general-purpose programming language, very well suited not only for developing elaborate technology, but also for organising the development of less exotic parts of the applications, such as user interfaces or database layers.
Today, the use of OCaml is a key ingredient in LexiFi's ability to meet and exceed its customers' demands in a timely fashion.