An Abstract Machine to Implement Functions in LIFE
2018-06-30T05:51:07Z (GMT) by
This note outlines the Life Abstract Machine (LAM), an abstract machine used as an intermediate target for the efficient compilation of LIFE. LAM focuses primarily on the efficient implementation of matching, residuation, and currying of functions. Although the topic is not discussed in this note, LAM also implements lazy unification. LAM should be viewed as an intermediate target for compiling LIFE to a native instruction set for a general purpose processor. Thus, this note presents LAM as an abstract machine along with its instructions. However, we also discuss how LAM would be realized in terms of data structures and basic routines. This should facilitate the implementation of both a LIFE-to-LAM compiler and a LAM-to-native-code compiler.