Showing posts from March, 2017

Using BAP as a Research and Engineering Toolkit

Probably the number one feature of BAP is by far the module design and language facilities that are immediately available due to the fact that it is written in OCaml, even though it is very hard to distinguish since the developers are so highly talented. That's not to start a language war, but just to highlight why having useful tools that assist in development is so critical. To start, the module system that it has been built around facilitates maximal reuse of code at minimum expense of undue effort wrangling with difficulties presented by a language. If you contrast this to Java, for example, you'll recognize that it can often be difficult to express what you need when everything is an object or class at the type level. In OCaml, functions represent the mechanism of composition, and are given first class treatment by the module system. You may have noticed if you’ve developed in a variety of languages that often Gang of Four design systems arise out of what is essentially d…