Specialization of Systems Programs: Lessons and Perspectives

  • Authors:
  • Gilles Muller

  • 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

Systems programs are often highly generic so as to adapt to changing environement and needs. A conventional way to achieve adaptation consists of structuring systems in terms of modules and layers to enable various functionalities to be added. However, what seems to be an adequate strategy at the design level often leads to performance problems in the implementation. Program specialization is a technique that consists of adapting a generic program component to a given usage context. Specialization is aimed at evaluating in advance the computations that depend only on the information provided by the usage context. Therefore, this process can lead to considerable performance gains. In the Compose group, we have developed program specializers for C and Java, named Tempo [1,2] and JSpec [6] respectively, that have been specifically targeted to systems programs. We present three successful experiments in specializing systems programs: the Sun remote procedure call [4,5], a domain-specific language interpreter for active networks [7] and an incremental checkpointer for Java programs [3]. We analyse the structure of these programs and detail the opportunities for specialization. We conclude by drawing lessons for our experiments and by presenting perspectives in using program specialization on systems design.