Bankers Systems Inc / Wolters Kluwer: Expressive Rules Language
Bankers Systems Inc is a US-based financial services company specialising in particularly complex banking processes and documents.
BSI have developed a highly specialised object-oriented programming language to manage and expand the increasing complexity of their compliance governance and electronic document products. The language was refined and tested with a proof-of-concept compiler and interpreter that we developed for them based on a draft specification. We then designed and implemented a commercial-grade compiler and interpreter that integrates with their range of products as well as internal tools and processes.
The resulting product is a highly robust and efficient, multi-pass, strongly and statically typed compiler and recursive interpreter. A particular emphasis was put on providing meaningful contextual error messages and warnings to aid the program authoring process. The complete set of language features includes complex SQL-like expressions, inheritance, polymorphism, function overloading, generated default constructors, native arrays, built-in XML and set types. The business value of capturing decades of domain expertise in a specialised, modern programming language and accompanying code library cannot be overstated.
Basing the compiler and interpreter on MLML technology allowed us to completely modularize each language feature and component. The different aspects of parser, compiler and interpreter definitions are captured together with documentation and code tests into simple units. The results were extremely positive both in terms of how quickly development could proceed, and in terms of product quality and performance.
The MLML framework further allowed us to create custom builds of the compiler/interpreter, not only as a classical command line tool, but also as a web service and directly integrated into BSI's authoring tools. Each target had to be optimised for its environment - the tools that we developed routinely processes source code documents of several tens of megabytes.