epilogue
always have finalizing, Unconsciously we have completed the UCC compiler analysis, all the way, the deepest experience is still "paper on the end of light, it is known that the matter to preach." According to this principle, the best way to understand the UCC compiler is to "read directly its source code, think about how the UCC compiler should be in different execution points, add some print statements, output the appropriate debug information to verify that your judgment is correct, and if you find a bug, write some test programs to trigger the bug." Then modify the source code of the UCC compiler. In the face of confusion, perhaps my book can bring a little help and hints, but my book can not be replaced, and should not replace the UCC source code active reading. Source code Analysis of related books can easily bring a side effect, that is, the reader under the traction of books to read passively, and ignore the source code itself to read actively. The effect of active thinking and passive reading is completely different.
The capabilities of LLVM and GCC are strong enough and the programmer community is large enough to support its continuous development and improvement. While UCC is hardly likely to rival these compilers, the biggest advantage of the UCC compiler is that "it's size and complexity are within the scope of a C programmer's single-handedly controlled". As long as we are willing to make efforts, we will be able to better understand the UCC compiler, so that the better use of C language this simple and hard tool. Of course you can read the UCC compiler basically, and there is a gap between being able to write a UCC like the UCC original author ([email protected]). UCC compiler the most suitable reader may be in the University of college students, have time, have energy, and temporarily do not have to consider "write code for the family", you can calm down to play a good professional skills. There are few programmers who have the opportunity to participate in the development of the compiler, but the significance of conquering the UCC compiler is that "it gives us the ability to conquer other hills," which may be called sharpening. Of course, the choice of what kind of hill to training, from our own interests. From a basic point of view, we can choose other hills of interest to conquer, such as the Massachusetts Institute of Technology XV6 operating system, and not necessarily choose the UCC compiler. XV6 operating system is UnixV6 system on the X86 platform of rebirth, if time permitting, perhaps we can go together "XV6 Operating system Anatomy".
Everyone has their own idols, when we talk about XXX is my idol, the subtext is often "we want to be like that person." Most people can't reach the height of their idols, but idols will guide us in a way. The birth of C and Unix in the the 1970s has impacted generations of programmers and has had a profound impact on the IT industry as a whole. Reading "UCC source code and XV6 source code" should be much more interesting than "the textbook of compiling principles and operating systems", which is the best way for us to salute the great forerunner Dennis Ritchie and Ken Thompson, In fact, it is one of the most effective ways to learn the principles of compiling and operating systems. With the source code level of perceptual knowledge, and then to supplement the theory, you will get a better sublimation.
CPU due to physical limitations, its frequency is no longer infinitely improved, Moore's Law on a single CPU has gradually failed, the current and future direction should be multicore, distributed and parallel. In a distributed or parallel environment, how to provide an easy-to-use programming environment for programmers is perhaps the focus of research in the next few years. Of course there is optimization, after all, we always in the pursuit of "no best, only better."
be limited to the level and ability, the book is inappropriate in the criticism and correction.
[Email protected]
C Compiler Anatomy _ Epilogue