Primitive syntax compilation uses special compile-time environments, while syntax execution uses a run-time environment. Both of these are asssigned the C type Scheme_Env*, but the functions used to access and extend a compile-time environment are different than for a run-time environment. Global variables can be accessed and set in the same way with either a compile-time or run-time environment. A run-time enviroment is extended with local variable frames by using scheme_add_frame or scheme_new_frame and scheme_extend_env. A compile-time environment is extended with scheme_add_compilation_frame or scheme_new_compilation_frame and scheme_extend_env.