假设X是输入语言,Z是输出语言,f是编译器,用Y语言编写。
f = X -> Z
因为f只是一个程序,我认为Y可以是任何语言,对吗?所以我们可以有编译器f1,f2,每个编译器都是用Y1和Y2编写的。
f1 = f Y1
f2 = f Y2
g = Z -> M
h = g . f # We get a compiler X -> M
以cpython编译器为例,X是Python,Z是Python代码,Y是C。
cpython = Python -> PythonVMCode C
interpreter = PythonVMCode -> Nothi