LearnViz CompSci
Home / Learn / Languages & Compilers

🧬 Languages & Compilers

How code becomes behavior. 50 topics, from beginner to advanced.

Programming languages and compilers explain how source code becomes instructions a machine can run. This area covers lexing, parsing, type systems, interpreters, compilers and optimization, along with language features such as closures, generics and memory management. Understanding them helps you write clearer code and read error messages more effectively.

Who this area is for

Developers who want to understand the tools they use, students of compilers, and language designers.

Real-world use cases

Topics in Languages & Compilers

Beginner (17)

Intermediate (17)

Advanced (16)

How to study Languages & Compilers

Take a tiny language, such as arithmetic expressions, and build a tokenizer, a parser and an evaluator for it. Then add a variable and a loop. Each step makes the later topics, such as bytecode and data-flow analysis, concrete.

Frequently asked questions

What is the difference between a compiler and an interpreter?
A compiler translates the whole program into machine code or an intermediate form before running it. An interpreter executes the program directly or step by step, which makes iteration quicker.
What does a parser do?
A parser checks that a sequence of tokens follows the language grammar and builds a tree that represents the program’s structure. Later stages analyze and transform that tree.
What is static typing?
Static typing checks types at compile time, catching many mistakes before the program runs. Dynamic typing checks types at run time, which allows more flexibility.
Do I need to build a compiler to understand languages?
Building a small one is the fastest way to understand them, but reading how a parser and an evaluator work is enough for most developers.
Why do languages have different semantics for the same syntax?
Syntax is the written form and semantics is what it means. Two languages can use identical symbols with different rules for scope, types or evaluation order.

Open the interactive Languages & Compilers area Take the Languages & Compilers quiz

Other areas