Tempo: specializing systems applications and beyond
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Accurate program analyses for successful specialization of legacy system software
Theoretical Computer Science - Partial evaluation and semantics-based program manipulation
A Uniform Approach for Compile-Time and Run-Time Specialization
Selected Papers from the Internaltional Seminar on Partial Evaluation
Efficient Incremental Checkpointing of Java Programs
DSN '00 Proceedings of the 2000 International Conference on Dependable Systems and Networks (formerly FTCS-30 and DCCA-8)
Safe and Efficient Active Network Programming
SRDS '98 Proceedings of the The 17th IEEE Symposium on Reliable Distributed Systems
Fast, Optimized Sun RPC Using Automatic Program Specialization
ICDCS '98 Proceedings of the The 18th International Conference on Distributed Computing Systems
Hi-index | 0.00 |
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.