Most software component technologies fail to account for lightweight components (those for which a function call is too inefficient
or semantically inappropriate) or generative components (those in which the component embodies a method of constructing code
rather than ac- tual code). Macro-based systems such as the C++ Standard Template Li- brary are exceptions. They, however,
have the disadvantage that compo- nents must be delivered largely in source form. In this paper, we present a component technology
in which lightweight and generative components can be delivered in binary form. The technology is conceptually simple and
is easily implemented with existing programming languages. Our basic idea was explained in part I of this paper: By giving
a composi- tional semantics for a source language in a domain of meanings Code, components can be written in the form of macros,
but communicated in terms of meanings. In the companion paper, we showed how higher-order values over Code can be used to
write lightweight, generative compo- nents. There, we took Code to be string, so our components amounted to higher-order macros.
In this paper, we define Code more abstractly, allowing components to be delivered in a form that does not resemble syntax,
yet allows for them to be loaded dynamically and execute effi- ciently.
Partial support for the first and third authors was received from NSF under grant CCR-9619644.