siddhant

Knowledge / Computer Science

Programming Languages

Languages, type systems, semantics, compilation, runtime systems, memory models, and programming paradigms.

By Siddhant Krishna · Published 2026-10-06 · Updated 2026-10-06

01

Programming Paradigms

  • Imperative programming describes state changes.
  • Object-oriented programming organizes state and behavior around objects and interfaces.
  • Functional programming emphasizes expressions, immutability, and composition.
  • Logic programming expresses relationships and inference rules.
  • Concurrent programming coordinates independently progressing computations.

02

Type Systems

A type system constrains which operations are valid on values. Types can detect classes of errors before execution and provide information that compilers and development tools can exploit.

  • Static typing performs significant checking before execution.
  • Dynamic typing performs checks during execution.
  • Strong typing concerns restrictions on invalid operations.
  • Dependent and refinement types express more detailed program properties.

03

Compilers

  • Lexical analysis converts character sequences into tokens.
  • Parsing constructs a syntactic representation.
  • Semantic analysis verifies program meaning and constraints.
  • Intermediate representations expose structure for optimization.
  • Code generation produces target-machine instructions.
  • Runtime systems provide services required during execution.

References

  1. ACM, IEEE Computer Society, and AAAI, CS2023 Final Report.
    https://csed.acm.org/

Related

Contact

Get in Touch

Want to chat? Just shoot me a dm with a direct question on twitter and I'll respond whenever I can. I will ignore all soliciting.