Lightweight and Generative Components 2: Binary-Level Components

  • Authors:
  • Samuel N. Kamin;Miranda Callahan;Lars Clausen

  • Affiliations:
  • -;-;-

  • Venue:
  • SAIG '00 Proceedings of the International Workshop on Semantics, Applications, and Implementation of Program Generation
  • Year:
  • 2000

Quantified Score

Hi-index 0.00

Visualization

Abstract

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 actual code). Macro-based systems such as the C++ Standard Template Library are exceptions. They, however, have the disadvantage that components 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 compositional 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 components. 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 efficiently.