Skip to content

Programming Languages

  • Language paradigms: imperative, object-oriented, functional, logic
  • Type systems: static vs dynamic, strong vs weak, type inference, generics
  • Memory management: stack vs heap, manual (C/C++), garbage collection (tracing, reference counting), ownership (Rust borrow checker)
  • Compilation: lexing, parsing (ASTs), semantic analysis, code generation, LLVM
  • Interpretation: bytecode VMs (JVM, CPython), JIT compilation
  • Key language features: closures, pattern matching, algebraic data types, traits/interfaces
  • Domain-specific languages: SQL, regex, shader languages
  • Language design tradeoffs: performance vs safety vs expressiveness