Abstract
Partial Evaluation is a well-established method for specialization of programs in functional languages. However, real-world applications demand specialization of object-oriented languages. With the advent of the Microsoft .NET platform with Common Intermediate Language (CIL), to which multiple languages are compiled, various program analysis and transformation techniques, including partial evaluation, can be developed once for a low-level language rather than over and over again to various high-level languages. The CILPE Project aims at developing a practical specializer for CIL programs based on Partial Evaluation with preliminary analysis referred to as Binding Time Analysis (BTA). The CILPE Specializer partially evaluates operations on values and objects determined by BTA as static. Static objects are created, processed and destroyed at specialization time; they may be mutable and can have some fields unknown (dynamic). Arbitrary verifiable CIL code is allowed as input.
Supported by Microsoft Research grant No. 2002-83.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Asai, K.: Binding-Time Analysis for Both Static and Dynamic Expressions. In: Cortesi, A., Filé, G. (eds.) SAS 1999. LNCS, vol. 1694, pp. 117–133. Springer, Heidelberg (1999)
Asai, K., Masuhara, H., Yonezawa, A.: Partial Evaluation of Call– by-value lambda-calculus with Side-effects. In: Proceedings of the 1997 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, pp. 12–21. ACM Press, New York (1997)
Bertelsen, P.: Binding-time analysis for a JVM core language (April 1999), ftp://ftp.dina.kvl.dk/pub/Staff/Peter.Bertelsen/bta-core-jvm.ps.gz
Di Iorio, V., Bigonha, R., Maia, M.: A Self-Applicable Partial Evaluator for ASM. In: Gurevich, Y., Kutter, P., Odersky, M., Thiele, L. (eds.) Abstract State Machines – ASM 2000, International Workshop on Abstract State Machines, Local Proceedings, Monte Verita, Switzerland, March 2000. TIK-Report, vol. 87, pp. 115–130. Swiss Federal Institute of Technology (ETH), Zurich (2000)
ECMA International: Common Language Infrastructure (CLI), Standard ECMA- 335, 2nd edn (December 2002), http://www.ecma-international.org/publications/standards/ecma-335.htm
Ershov, A.P.: On the essence of compilation. Programmirovanie (5), 21–39 (1977) (in Russian); See translation in: Neuhold, E.J. (ed.) Formal description of Programming Concepts, pp. 391–420. North-Holland, Amsterdam (1978)
Goertzel, B., Klimov, A.V., Klimov, A.V.: Supercompiling Java Programs, white paper, Supercompilers LLC (2002), http://www.supercompilers.com
Gurevich, Y., Huggins, J.: Evolving Algebras and Partial Evaluation. In: Pehrson, B., Simon, I. (eds.) IFIP 13th World Computer Congress. Technology/Foundations, vol. I, pp. 587–592. Elsevier, Amsterdam (1994)
Jones, N.D., Gomard, C.K., Sestoft, P.: Partial evaluation and automatic program generation. Prentice-Hall, Inc., Upper Saddle River (1993)
Marquard, M., Steensgaard, B.: Partial Evaluation of an Object-Oriented Imperative Language, Master’s Thesis, Department of Computer Science, University of Copenhagen, Denmark (April 1992), ftp://ftp.research.microsoft.com/users/rusa/thesis.ps.Z
Romanenko, S.A.: A Compiler Generator Produced by a Self-Applicable Specializer Can have a Surprisingly Natural and Understandable Structure. In: Bjorner, D., Ershov, A.P., Jones, N.D. (eds.) Workshop on Partial Evaluation and Mixed Computation, GI. Avernaxs, Denmark, October 1987, pp. 445–463. North-Holland, Amsterdam (1988)
Romanenko, S.A.: Arity Raiser and Its Use in Program Specialization. In: Jones, N.D. (ed.) ESOP 1990. LNCS, vol. 432, pp. 341–360. Springer, Heidelberg (1990)
Schultz, U.P., Lawall, J.L., Consel, C., Muller, G.: Towards Automatic Specialization of Java Programs. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, pp. 367–390. Springer, Heidelberg (1999)
Schultz, U.P.: Partial Evaluation for Class-Based Object-Oriented Languages. In: Danvy, O., Filinski, A. (eds.) PADO 2001. LNCS, vol. 2053, pp. 173–197. Springer, Heidelberg (2001)
Turchin, V.F.: The concept of a supercompiler. ACM Transactions on Programming Languages and Systems 8, 292–325 (1986)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Chepovsky, A.M. et al. (2004). Partial Evaluation for Common Intermediate Language. In: Broy, M., Zamulin, A.V. (eds) Perspectives of System Informatics. PSI 2003. Lecture Notes in Computer Science, vol 2890. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-39866-0_19
Download citation
DOI: https://doi.org/10.1007/978-3-540-39866-0_19
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20813-6
Online ISBN: 978-3-540-39866-0
eBook Packages: Springer Book Archive