GCC . NET — a feasibility study

We examine the issues involved in producing a backend for the GNU Compiler Collection (GCC) that targets the .NET Common Language Runtime. We describe a simple back-end that is written in standard GCC style, which interfaces with the register transfer language GCC intermediate representation. We demonstrate that this simple .NET back-end is able to compile an appreciable subset of the C language. We then consider support for function call handling, object-orientation and language interoperability, amongst other things. Problems arise because GCC discards much information which could be used to enhance the .NET code generation phase. We briefly describe several possible alternative methods of creating a GCC .NET backend, which might produce more effective .NET bytecode.