Abstract
The Microsoft .NET Common Language Runtime (CLR) offers support for generic types and methods. We develop a mathematical specification for the generics design through a type system and a model for the semantics of a subset of bytecode instructions with generics. We formalize the type-consistency checks performed for the subset by the CLR bytecode verifier. We then prove that adding support for generics maintains the type safety of the CLR.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Microsoft .NET Framework 2.0, http://msdn.microsoft.com/netframework/
Börger, E., Stärk, R.F.: Abstract State Machines – A Method for High-Level System Design and Analysis. Springer–Verlag, Heidelberg (2003)
Cook, W.R.: A Proposal for Making Eiffel Type-Safe. Comput. J. 32(4), 305–311 (1989)
Common Language Infrastructure (CLI) – Standard ECMA-335 (2002)
Fruja, N.G.: The Soundness of the .NET CLR Bytecode Verifier (submitted)
Fruja, N.G.: A Modular Design for the.NET CLR Architecture. In: Beauquier, A.S.D., Börger, E. (eds.) 12th International Workshop on Abstract State Machines, ASM 2005, Paris, France, pp. 175–199 (March 2005)
Fruja, N.G., Börger, E.: Analysis of the.NET CLR Exception Handling. In: Skala, V., Nienaltowski, P. (eds.) 3rd International Conference on.NET Technologies,NET 2005, Pilsen, Czech Republic, pp. 65–75 (June 2005)
Howard, M., Bezault, É., Meyer, B., Colnet, D., Stapf, E., Arnout, K., Keller, M.: Type-safe covariance: Competent compilers can catch all catcalls (April 2003), Draft at http://se.ethz.ch/~meyer/
Igarashi, A., Pierce, B.C., Wadler, P.: Featherweight Java: a Minimal Core Calculus for Java and GJ. ACM Trans. Program. Lang. Syst. 23(3), 396–450 (2001)
Jeffrey, A.: Generic Java type inference is unsound. The Types Forum (2001)
Kennedy, A., Syme, D.: Design and Implementation of Generics for the.NET Common Language Runtime. In: ACM SIGPLAN 2001 Conf. on Programming Language Design and Implementation, PLDI 2001, Snowbird, Utah, United States, pp. 1–12 (May 2001)
Viroli, M., Natali, A.: Parametric Polymorphism in Java: an Approach to Translation based on Reflective Features. SIGPLAN Not 35(10), 146–165 (2000)
Yu, D., Kennedy, A., Syme, D.: Formalization of Generics for the.NET Common Language Runtime. In: 31st ACM Symposium on Principles of Programming Languages, POPL 2004, Venice, Italy, pp. 39–51 (January 2004)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Fruja, N.G. (2006). Type Safety of Generics for the .NET Common Language Runtime. In: Sestoft, P. (eds) Programming Languages and Systems. ESOP 2006. Lecture Notes in Computer Science, vol 3924. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11693024_22
Download citation
DOI: https://doi.org/10.1007/11693024_22
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-33095-0
Online ISBN: 978-3-540-33096-7
eBook Packages: Computer ScienceComputer Science (R0)