My programming languages textbook explains how interpreters work by providing Scheme programs. For example, there is a procedure that determines whether a variable falls within the scope of an expression, there is a procedure to define a datatype, and so on. These functions are "pieces" of an interpreter.
I would like to understand how interpretation works through formal math. An interpreter looks at some input and determines which function(subprogram)to call next. It appears that this processing of functions could be represented mathematically, since functions are simply executing one another or performing operations. Is there a branch of math that deals with this representation of abstract functions?