DMCD A Distributed Multithreading Caching D Compiler
- Distributed Computing
- Synchronisation and Caching
- Programming Languages
Nearly thirty years have passed since the release of the infamous Dragon Book by Aho, Lam, Sethi, and Ullman. Since then the available memory and CPU power has grown by a factor of at least 1000 and 10000 respectively. The use of Multiprocessors and fast networks has become the rule rather than the exception. Even though compiler and programming language have advanced greatly in this period of time, their basic design has not been adjusted to reflect the enormous hardware improvements. In this Masterthesis, I will present a D compiler that is exploits these tremendous hardware advances. The compiler is split into two parts, a front-end and a daemon. The daemon is started only once and runs until it is terminated manually. The front-end accepts jobs and delivers them to the daemon. These jobs are compiled by the daemon. Parallelisms is realized by organizing lexing, parsing, and semantic analysis in three communicating threads. In order to speed up compilation even more results are cached within the daemon. For further speedup, jobs and results are automatically distributed by the daemons within a network. Results are stored in a cache and network friendly matter. Besides the conceptual architecture of this new compiler, I will report on the library, that was written to build this compiler.