X-Git-Url: https://git.stderr.nl/gitweb?p=matthijs%2Fprojects%2Finternship.git;a=blobdiff_plain;f=Report%2FMain%2FConclusions.tex;h=845d7b2e96d4fc07f0eabeaa7c400d593446e2ef;hp=34804964a3182a3a821bcf0cfc7322b5c785457e;hb=bda4ad2a7baf347f8bb7239ae998088a6987b73b;hpb=b8ed8189b345f81d7a91535959b3776593062535 diff --git a/Report/Main/Conclusions.tex b/Report/Main/Conclusions.tex index 3480496..845d7b2 100644 --- a/Report/Main/Conclusions.tex +++ b/Report/Main/Conclusions.tex @@ -1,2 +1,35 @@ \chapter{Conclusions} -This chapter will give a number of conclusions. +During this internship, I have of course learned a lot. While a large part of +these lessons are very practical in nature (from how working in a company works +to how to solve specific coding problems), there are also a number of higher +level observations to be made. + +For example, I have found that the main challenge in solving a problem, is +defining the actual problem you want to solve. This is clearly visible in the +specification of MontiumC: If you don't know what the goals are, you can't +really work towards them. But, on a smaller scale, this also holds on a smaller +scale. When, during coding you encounter a problem, it's often easy to try to +solve that problem. However, after stacking a few small solutions on top of each +other, things get complicated real fast. Then, it helps to take a step back and +try to find the bigger problem you are trying to solve, and evaluate +subsolutions in that perspective. + +During my (limited amount of) work with the new hardware design, it became +quickly apparent that trying to design the hardware in an optimal way, was +completely impossible (when trying to stay within area and power constraints). +The most important issue in this design is finding the balance between two sides +of a tradeoff, which was quite often hardware vs compiler complexity. Especially +this last issue makes it very clear that when designing hardware, the supporting +tooling should be designed in parallel, to prevent the tooling from needing to +be overly complex. + +These limitations are also visible when working with the old hardware: The +hardware poses a lot of limitations on its input, which makes it quite hard to +build a proper compiler, that can reliably compile anything that it is supposed +to. Again, adapting the hardware to support the compiler, has the potential to +make the compiler considerably less complex and more reliable, at the cost of +larger hardware complexity, area and power consumption. + +All in all, I feel that this internship has worked out quite well. The people +were cooperating, the job was fun yet challenging and the result is +well-received.