- Parsing with derivatives
- Parser generators
- ANTLR 4
- The old guard of flex (lex) + bison (yacc), JavaCC + CUP
- Data binding generators (the perils of code generation)
- protoc
- Prisma
- Faster regex engines
- Specific language (flame wars ensue)
- Emerging
- Pony (pdf) - Perhaps the best-engineered general GC on the planet in the form a capabilities sharing semantics language
- V - Spirit of Go but safer, more general, more features, and faster compilation
- Crystal - Ruby-ish but statically compiled
- Dependent types with Idris and F*
- Zig Compile-time functions (macroless), C++-compatible language
- Carbon Google's C++-interop language
- Vox D-interop language
- Taking off
- Took off
- Go
- Circling the airport
- Ruby
- Haskell
- C++ pre-14
- Never forget
- Prolog
- Erlang
- FORTRAN 77
- Fortran 90
- Forth
- Turbo Pascal
- JDK 1.1 custom JNI .dll calling Win32 stuff (clutches pearls)
- Pre ANSI C++
- Emerging
- Productions of terminals and nonterminals
- NFAs, DFAs, and state machines
- Venn nosology ;) of grammars (LL, LALR, CFG, not CFG)
- Top-down vs. bottom-up
- Syntax-directed translation
- DIY recursive descent compilers
- PEG
- Scannerless parsing
- Lexical vs. syntactic vs. semantic
- Dataflow analysis
- Data operation reordering and sharing hazards
- Scoping rules
- Heap liveness analysis (those lifetime variables Rust use as decision placeholders for
malloc()
andfree()
) - Communicating sequential processes
- Programming paradigms: imperative, functional, higher kinded, and metaprogramming
- AST
- IR
- AST & IR transformation phases as stacked middleware
I once, circa 2012, had a recruiter arrogantly declare Go was a nothingburger. The sort of people who can't see beyond the next quarter's profit outlook have no business being in the business.