Proposal Documents can be downloaded as word document from from top right corner under Attachments.If you want to know what must be put under each heading please refer to
Proposal Guidelines.
Introduction
In our project we propose to build a compiler for Microsoft's C# language.
How it differs from the widely used traditional compiler for Microsoft's .NET languages is that instead of generating Microsoft's IL, our compiler will generate LLVM IR.
A few of the reasons for our choice is to get platform independence, avoid the bulk of the .NET framework and provide an alternative for users of the C# language.
The scope of the language specifications covered will only be a subset of the language(further details under scope and limitations).
-Source Language: C#
-Target Language: (Low level virtual machine)LLVM IR
Selective literature and review or Problem Statement¶
- C and C++ faster as compared to .Net languages.
- C and C++ not as safe as languages that run on top of Virtual Machines – type safety, memory access (pointers) and garbage collection – dangling pointers
- Sizes of int, long are actually platform dependent. For example: int doesn’t guarantee 32 bits all the time, this results in using a lot of pragmas and also the knowledge of specific architecture when writing codes for it.
- Different variants of C language – ANSI C, ISO C, C99 – Not 100% compatible with each other
- C# basically is not used as a system programming language – writing drivers for the OS.
- C# has programming principles such as accessors and mutators.
Goals and Objectives¶
- Portable Compiler
- Multi-Platform Target
- Type safe language
Scope and Limitations¶
[
Since scope is quite a huge topic we have a totally different page which can be accessed from here.]
Methodology
Content goes here...Proposed Schedule
Content goes here...References