X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fprojects%2Finternship.git;a=blobdiff_plain;f=Report%2FFront%2FAbstract.tex;h=0a4bd982c4063a1a50dc347d021cfd83d4f3deef;hp=02256b9c419c5ce282156ac3b45209c4fa1709d5;hb=28976641f199e6c3ad3a17aa82cbb87b0e31a9d0;hpb=90643309f86996e21c5b287ab0cfedb04ce020ce diff --git a/Report/Front/Abstract.tex b/Report/Front/Abstract.tex index 02256b9..0a4bd98 100644 --- a/Report/Front/Abstract.tex +++ b/Report/Front/Abstract.tex @@ -5,7 +5,7 @@ usage and high performance. For programming the Montium, a flavour of C was developed, called MontiumC. MontiumC is a subset of standard C, providing a library of builtin functions to access the extra features of the Montium. -The assignment of this internship focusses on improving the MontiumC compiler. +The assignment of this internship aims at improving the MontiumC compiler. The main goal is to make the compiler consistently support all valid MontiumC programs, instead of giving unexpected compilation errors when some (seemingly) valid constructs are used in certain combinations. @@ -19,15 +19,15 @@ give the best error messages yet. The MontiumC compiler heavily relies on the LLVM (Low Level Virtual Machine) project, which provides libraries and code for compiler development. This greatly simplifies the maintainance work for the compiler, but at the cost of -extra integration effort. Since the LLVM project mainly focusses on "regular" +extra integration effort. Since the LLVM project mainly aims for "regular" architectures, its code is not always directly usable. This is mostly solvable by adding extra extension hooks to the LLVM code, but sometimes local changes to -LLVM are still in use. +LLVM are required. Outside of the original assignment, there was also some work on the new hardware design, for the next generation Montium. Issues here centered around software -pipelining and code compression, and finding the balance between various -tradeoffs between flexibility, performance, complexity/area, code size). This +pipelining and code compression, and finding the balance in various +tradeoffs between flexibility, performance, complexity/area, code size, etc. This work was not finished within the internship, but provided a good learning experience.