Abstract
Most high-level program languages have their own compiler to interpret and compile source code, and maybe execute it in the special hardware environment. It is, however, important to understand
the principles and functions of compiler so developers can write codes more effective and compact and avoiding obviously run-time error. At University of Oslo there is a course (INF2100) where
students learn how to make a compiler for high-level program language RusC using Java. The Java implementation compiles the RusC source code to Rask code (Rasko) which is a machine language that can be executed in Rask machine. The main purpose of this thesis is to make .NET compiler for RusC using C# and compare with the Java implementation from INF2100 both in design and execution. The main feature of C# compiler is to generate not only machine codes which can be run on Rask machine, but also Microsoft Intermediate Language (MSIL) code, which can be assembled to Portable Executable (PE) file. Being an EXE file this PE file can then be executed in any machine installed with Microsoft .NET Framework environment. In addition experience from .NET implementation using C# might be useful for project development later in a bigger application in .NET Framework environment, especially where different programming languages are involved. On the other hand, Java is simpler to understand and easier to use as it is the standard program language currently taught at University of Oslo. It depends therefore on the goal and time assigned
to Course INF2100 and the background of individual student to choose the proper program language for implementation.