create procedure execution context
raise errors if a procedure is called with wrong number of arguments
support for evaluating procedures with arguments
logic to get the program context