Software components o er numerous advantages in terms of development, but may give rise to ine ciency due to highly generic implementations. Program specialization can automatically remove overheads due to overly generic implementations, but requires inspection of the source code. To retain the advantages of black-box software components, we propose black-box program specialization: specialization opportunities are specied by the developer and become part of the interface of a component, allowing the user to specialize the component according to speci c needs. We characterize the problem of consolidating program specialization and black-box component re-use, outline our proposed solution, and illustrate our approach using an example.