Caml trading – experiences with functional programming on Wall Street

@article{Minsky2008CamlT,
  title={Caml trading – experiences with functional programming on Wall Street},
  author={Yaron Minsky and Stephen Weeks},
  journal={Journal of Functional Programming},
  year={2008},
  volume={18},
  pages={553 - 564}
}
Abstract Jane Street Capital is a successful proprietary trading company that uses OCaml as its primary development language. We have over twenty OCaml programmers and hundreds of thousands of lines of OCaml code. We use OCaml for a wide range of tasks: critical trading systems, quantitative research, systems software, and system administration. We value OCaml because it allows us to rapidly produce readable, correct, efficient code to solve complex problems, and to change that code quickly to… 
A Case Study in Modular Programming: Using AspectJ and OCaml in an Undergraduate Compiler Project
TLDR
This article has converted an entire undergraduate compiler course from using AspectJ, an aspect-oriented language, to using OCaml, a functional language, and analyzes the usage of the two programming languages to compare and contrast the two software projects on a number of parameters.
Experience report: OCaml for an industrial-strength static analysis framework
TLDR
This experience report describes the choice of OCaml as the implementation language for Frama-C, a framework for the static analysis of C programs, and why it was chosen because it is expressive.
Software Engineering Properties of Functionally Enabled Languages
TLDR
The issues that prohibit the use of classic complexity and productivity metrics are discussed and the rationale behind a new set of metrics that targets this increasingly important set of languages is presented.
Simplifying the analysis of c++ programs
TLDR
Two techniques are offered, one based on refining the type system of a language and the other on abstract interpretation, which allow developers to statically ensure or verify various run-time properties of their programs without having to deal with the full language semantics or even the abstract syntax tree of a program.
It was never about the language: paradigm impact on software design decisions
TLDR
It is argued that programming languages have a secondary role in software development design decisions, and illustrated, based on a practical example, how the main influencer are higher-level traits: those traditionally assigned with programming paradigms.
Open pattern matching for C++
TLDR
This work presents functional-style pattern matching for C++ implemented as a library, called Mach71, which allows mapping functional code based on pattern matching directly into C++ and produces code that is only a few percent slower than hand-optimized C++ code.
Turning Down the LAMP: Software Specialisation for the Cloud
TLDR
This work presents a programming framework which permits applications to be constructed to run directly on top of it without intervening software layers, and shows significant performance speedups for I/O and memory handling versus the same code running under Linux/Xen.
Chemoinformatics and structural bioinformatics in OCaml
TLDR
This article shares the experience in prototyping chemoinformatics and structural bioinformatics software in OCaml and introduces the language, list entry points for chemoinformaticians who would be interested in the language and gives code examples.
Open pattern matching for C++
TLDR
This work presents functional-style pattern matching for C++ implemented as a library, called Mach7, that can be stored in variables, passed among functions, and allow the use of open class hierarchies.
ML Dependency Analysis for Assessors
TLDR
An information-flow analysis for such a language specifically designed according to the needs of assessors is presented, which can be parametrized to allow assessors getting a view of dependencies at several levels of abstraction and gives the basis for an efficient fault tolerance analysis.
...
...

References

SHOWING 1-10 OF 16 REFERENCES
Practical generic programming in OCaml
TLDR
Deriving is described, a system of extensible generic functions for OCaml implemented as a preprocessor and supporting library and it is shown how this can lead to dramatically improved performance in the serialisation task without the user writing a single line of serialisation code.
Phantom types and subtyping
TLDR
It is formally demonstrated the suitability of the phantom-types technique for capturing first-order subtyping by exhibiting a type-preserving translation from a simple calculus with bounded polymorphism to a calculus embodying the type system of SML.
Programming with Polymorphic Variants
TLDR
Based on the experience with the Objective Label system, how variant polymorphism can be integrated in a programming language, and what are the benefits of type inference and compilation schemes are described.
Objective ML: An Effective Object-Oriented Extension to ML
TLDR
Objective ML allows for most features of object-oriented languages including multiple in- heritance, methods returning self and binary methods as well as parametric classes, and demonstrates that ob- jects can be added to strongly typed languages based on ML polymorphism.
Haskell 98 language and libraries : the revised report
TLDR
The Haskell 98 Language: Lexical structure, Declarations and bindings, Predefined types and classes, and Libraries.
A real-time garbage collector based on the lifetimes of objects
TLDR
This work presents a garbage collection algorithm that makes storage for short-lived objects cheaper than storage for long-livedObjects, that operates in real time, increases locality of reference, for better virtual memory performance, and works well with multiple processors and a large address space.
May) The Objective Caml system, documentation and user’s manual – release
  • 2007
On the implementation of construction functions for non-free concrete data types
TLDR
The notion of private data type is detailed and a prototype, called Moca, is described that addresses the entire problem of defining concrete data types with invariants: it generates efficient construction functions for the combination of common invariants and builds representatives that belong to a concrete data type with private constructors.
Haskell 98 language and libraries
  • In The Revised Report. http:// haskell.org/onlinereport/
  • 2002
The Objective Caml system, documentation and user's manual -release 3.10
  • INRIA. LexiFi
...
...