2012 · 12 citations · 18 references
ComputingComputer EngineeringComputer ScienceComputer ArchitectureEmbedded SystemsProgramming LanguagesEmbedded Software DesignEmbedded Systems ProgrammingGeneric ProgrammingStatic AnalysisStatic Code AnalysisType SystemsCode Size OptimizationGeneric FunctionsGenerics ImplementationPolymorphism StudiesProgram OptimizationScalable Static AnalysisStatic PolymorphismWhole-program Optimization
Low-end embedded systems are still programmed in C and assembly, and adopting high-level languages such as C# should reduce the length of their development cycles. For these systems, code size is a major concern, but run-time efficiency should also be reasonable --- programmers will not migrate to C# unless the overhead compared with C is insignificant. In this paper, we propose a static approach based on whole program optimization for implementing .Net generics in such systems. Indeed, the implementation of run-time generics involves a tradeoff between size and run-time efficiency. In this proposal, generic instances are detected through a generalization of RTA to parametric polymorphism. Also, we propose an implementation scheme which employs code sharing and more effective coercions than boxing. Unlike existing implementation schemes, it is scalable in the number of generic instances without involving boxing and unboxing in a systematic way.
18
Making the future safe for the past
Gilad Bracha, Martin Odersky, David Stoutamire et al. · 1998 · 503 citations · Full text
Martin Odersky, Philip Wadler · 1997 · 419 citations · Full text
Design and implementation of generics for the .NET Common language runtime
Andrew Kennedy, Don Syme · 2001 · 199 citations
Compiling standard ML to Java bytecodes
Nick Benton, Andrew Kennedy, George Russell · 1998 · 140 citations