Advanced Compilers: Self-Guided Online Course
Domain-specific compilers are a bigger field, where there&#x27;s more opportunity to do something interesting<p>Take C (or some other language) and its mature optimizing compilers as a foundation, and write a program that compiles a high-level description of a domain-specific program into C<p>For example, NN-512 (<a href="https:&#x2F;&#x2F;NN-512.com" rel="nofollow">https:&#x2F;&#x2F;NN-512.com</a>) is a compiler that takes as input a simple text description of a convolutional neural net inference graph and produces as output a stand-alone C implementation of that graph<p>GNU Bison (<a href="https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;bison&#x2F;" rel="nofollow">https:&#x2F;&#x2F;www.gnu.org&#x2F;software&#x2F;bison&#x2F;</a>) is another example, where the output is a parser: <i>Bison reads a specification of a context-free language, warns about any parsing ambiguities, and generates a parser (either in C, C++, or Java) which reads sequences of tokens and decides whether the sequence conforms to the syntax specified by the grammar</i><p>Halide (<a href="https:&#x2F;&#x2F;halide-lang.org&#x2F;" rel="nofollow">https:&#x2F;&#x2F;halide-lang.org&#x2F;</a>) is a language for fast, portable computation on images and tensors, and it originally generated human-readable C++ code as output (but not anymore, now it feeds directly into LLVM)<p>Can anyone provide other examples? (Code generators for network packet processing?)