SICP says "Program == Language Evaluator" What does this  mean?
christopherdone: I believe SICP's definition of a language involves these: means of simple data, means of combination and means of abstraction. Numbers, strings, data structures/objects are the simple data as you would find in any program. Functions and variables are means of abstraction. And what those functions and variables define also create new abstractions and means of combination. This is where our own language comes in. In this way, all your programs define languages, and to run them is to perform evaluation of these languages. So the program is the evaluator of a language we've defined in trying to describe our problem domain. I'd give examples but SICP gives ample.