NAT
abstract grammar
component. This way the metacircular evaluator can use the functions of the
underlying pico.
Let us call the implementing Pico, Pico1, and the implemented Pico, Pico2.
Then every native function of Pico2 is a function in Pico1 that is wrapped
with a NAT
tag.
If the MC-eval calls such a function, the wrapping information is removed
and the function is called in Pico1, with the arguments converted
appropriately (= deification). The result is a Pico1 value. Before this
value can be used in the evaluator, it has to be wrapped into Pico2
again (=reification). The terms "to reify" and "to deify" come from
philosophy: "to reify" means to materialize something that is only mental.
"to deify" means to mentalize something that is material.
All the reified Pico1 functions are put in the Pico2 dictionaries. This is done by
make_global
, the major function of
this file.