a transportation service, which brings the code and the calls from OpenMusic to the service provider, e.g. via TCP/IP and remote shell commands, or via Apple events (see section 5.2), a data converter to map input and output parameters that are passed by value between OpenMusic and the service provider, a parser that knows how to interprete the result coming from the service provider (e.g. split lines and return elements as a list of strings or numbers, or evaluate the returned text as a LISP expression), a language construct converter to map higher level programming structures to those understood by the service provider’s scripting environment, a language element converter to map between visual elements and available elements in the target language/system, a script generator, that is aware of the different syntax duties (which sign finishes an expression, which line feeds are used, how to handle escape sequences etc.). It can optionally produce more human-readable code by doing some pretty printing. Scripts produced this way are more maintainable and can be of use in the target application even without OpenMusic. They can be given to users who do not have OpenMusic but want to use and adopt the produced scripts. It must be noted that typical computer science skills are needed to realize these basic functionalities. However, the concrete configuration can be performed by advanced users, and some parametrizations, like entering the host name, user name and password of an account on a remote machine, even by novices. A lot of configurations can be made by users, if there are similar example configurations. 5.5 Examples of Mixing Programming Languages in OpenMusic
|