Implementing operators
Operators are expressions that compute a value. Simple operators that compute their results via a few instructions on the underlying machine were covered in the preceding chapters. This section describes how to implement an operator that takes many steps. You can call these operators composite operators. In this case, the underlying generated code may perform calls to functions in the underlying machine.
The functions called from generated code are written in the implementation language rather than the source language. They may be lower level and do things that are impossible in the source language. For example, parameter passing rules might be different in the implementation language than they are in the programming language that you are creating.
If you are wondering when you should make a new computation into an operator, you can refer to Chapter 2, Programming Language Design. Rather than repeat that material, we will just note that operators are generally...