Journal of logic programming vol:22 issue:1 pages:47-99
We study a semantics for untyped, vanilla metaprograms, using the non-ground representation for object level variables. We introduce the notion of language independence, which generalizes range restriction. We show that the vanilla metaprogram associated with a stratified normal object program is weakly stratified. Far language independent, stratified normal object programs, we prove that there is a natural one-to-one correspondence between atoms p(t(1),...,t(r)) in the perfect Herbrand model of the object program and solve(p(t(1),...,t(r))) atoms in the weakly perfect Herb and model of the associated vanilla metaprogram. Thus, for this class of programs, the weakly perfect Herbrand model provides a sensible semantics for the metaprogram. We show that this result generalizes to nonlanguage independent programs in the context of an extended Herbrand semantics, designed to closely mirror the operational behavior of logic programs. Moreover, we also consider a number of interesting extensions and/or variants of the basic vanilla metainterpreter. For instance, we demonstrate how our approach provides a sensible semantics for a limited form of amalgamation.