Theano is a Python library that allows you to define, optimize, and evaluate mathematical expressions involving multi-dimensional arrays efficiently. Theano features tight integration with numpy, transparent use of a GPU, efficient symbolic differentiation, speed and stability optimizations, dynamic C code generation, and extensive unit-testing and self-verification. Theano has been powering large-scale computationally intensive scientific investigations since 2007. But it is also approachable enough to be used in the classroom (IFT6266 at the University of Montreal).
UniCC, (Universal Compiler-Compiler) is a powerful LALR(1) parser generator and language development system for computer professionals. It serves as an all-round design and build tool assisting compiler writers in any parsing-related task, including production quality compiler construction and the implementation of domain specific languages. It unifies an integrated generator for lexical analyzers and a powerful LALR(1) parser generator into one software solution. The programming interface is a rich, extendable, and innovative BNF-based grammar definition language for expressing context-free grammars.
The Voodoo compiler is an implementation of the Voodoo programming language. The Voodoo programming language is a low-level programming language, abstracting over the platform's instruction set and calling conventions, but otherwise leaving the programmer free to do anything at all. The Voodoo compiler supports multiple target platforms and provides a stand-alone compiler, as well as a Ruby module for programmatic code generation.
The Aida project is two-fold: it defines a simple common markup language designed to describe structured text, and it implements a compiler that translates the Aida syntax into various target formats (HTML, LaTeX, Trac, Mediawiki, Text, Markdown, and others). The system is fast, flexible, and extensible. The core command, aida, is a strict parser (written using Bison and Flex), which analyzes files written in the Aida Markup Language and invokes callbacks in order to convert them to the target format. It embeds a Tcl language interpreter and the callbacks are written in Tcl. This makes it very easy to extend the library and to define new target formats. Furthermore, the Aida files are highly parameterizable via a header and the entire system is configurable at the admin and at the user level. It is also possible to evaluate Tcl code within an Aida file and thus create dynamic contents.
fpgasm creates bare-metal FPGA designs without Verilog or VHDL. Traditionally, FPGAs are built using proprietary Verilog or VHDL language implementations provided by the vendor. fpgasm is to Verilog and VHDL as assembly language is to C++. It takes you all the way to the netlist, and is not just a translator to Verilog. Because of that, the total "make" time to a working fpga is seconds, not minutes. With fewer than ten reserved words, fpgasm syntax can be mastered in a few minutes. With FPGA assembler, you can focus on understanding the FPGA substrate and how your design should map onto it (instead of figuring out large and complicated tools).
gradle-sablecc-plugin is a gradle plugin which creates parsers using SableCC. SableCC supports automatic CST-to-AST transformation, emits all the visitor patterns and analysis helpers you will likely ever need, and is LR, not LL(k). Many example grammars are available for modern languages; the author of this plugin has written dozens.