Welcome Guest, Login

LLVM#

RSS RSS

Navigation


Proposal





Quick Search
»

PoweredBy



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

  1. C and C++ faster as compared to .Net languages.
  2. 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
  3. 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.
  4. Different variants of C language – ANSI C, ISO C, C99 – Not 100% compatible with each other
  5. C# basically is not used as a system programming language – writing drivers for the OS.
  6. C# has programming principles such as accessors and mutators.

Goals and Objectives

  1. Portable Compiler
  2. Multi-Platform Target
  3. 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

  Name Size
- proposal-1.zip 21.76 KB
- proposal-2.zip 409.95 KB
- proposal-3.zip 675.15 KB
- proposal-4.zip 723.66 KB
- Proposal-5.zip 644.83 KB
- Proposal-6.zip 797.66 KB

ScrewTurn Wiki version 3.0.4.560. Maintained by Prabir Shrestha