Add conclusions and do some misc fixes.
[matthijs/projects/internship.git] / Report / Main / Conclusions.tex
index 34804964a3182a3a821bcf0cfc7322b5c785457e..845d7b2e96d4fc07f0eabeaa7c400d593446e2ef 100644 (file)
@@ -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.