separating syntactic analysis from execution (chapter 4.1.7 SICP)