Specialization of Systems Programs: Lessons and Perspectives

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.

[1]  Julia L. Lawall,et al.  Efficient incremental checkpointing of Java programs , 2000, Proceeding International Conference on Dependable Systems and Networks. DSN 2000.

[2]  Calton Pu,et al.  Fast, optimized Sun RPC using automatic program specialization , 1998, Proceedings. 18th International Conference on Distributed Computing Systems (Cat. No.98CB36183).

[3]  Ulrik Pagh Schultz,et al.  Towards Automatic Specialization of Java Programs , 1999, ECOOP.

[4]  Charles Consel,et al.  Selected Papers from PEPM'97 - Foreword , 2000, Theoretical Computer Science.

[5]  Charles Consel,et al.  Safe and efficient active network programming , 1998, Proceedings Seventeenth IEEE Symposium on Reliable Distributed Systems (Cat. No.98CB36281).

[6]  Charles Consel,et al.  Tempo: specializing systems applications and beyond , 1998, CSUR.

[7]  Jacques Noyé,et al.  A Uniform Approach for Compile-Time and Run-Time Specialization , 1996, Dagstuhl Seminar on Partial Evaluation.

[8]  Gilles Muller,et al.  Accurate program analyses for successful specialization of legacy system software , 2000, Theor. Comput. Sci..