The Invocation Bindings provide an easy way to invoke BRAHMS from a particular environment. Since BRAHMS itself receives its inputs as XML files, it is not easy to invoke BRAHMS without the use of an Invocation Binding (though it is easy to run BRAHMS directly once a Binding has been used to write the appropriate XML files). Currently, Invocation Bindings are available only for Matlab.


The original Matlab Invocation Binding, 995, works under Matlab and Octave.

2530 (Transitional)

Binding 2530 moves to the classdef syntax offered by Matlab, and thus has a less clunky syntax. Specifically, the latter syntax in this example works under 2530, but not under 995.

M Source Code (against 2530)
% 995 or 2530 sys = sys.addprocess(...); % 2530 only sys.addprocess(...);

2530 is a transitional binding and is entirely backwards compatible with 995 with one exception - since the objects sml_system, sml_log, and brahms_execution now use the classdef syntax and are handle objects, copying them using obj2 = obj creates only a shallow copy. This will usually be the behaviour you want, but if you need a deep copy you should use the syntax obj2 = obj.clone().

2530 will not work under Octave at time of writing (though see notes on its overview page) because Octave does not yet support the classdef syntax.


In future, a further binding will be released that is not backwards compatible with 995. This binding will deprecate the dot syntax for reading/writing parameters, in favour of a functional interface. The advantage of this is that the objects will self-document using the TAB-complete functionality of Matlab. However, the old syntax will no longer be available. This binding will be preferred for new projects.