← Back to CoursesComputer Science: PhD Level

Neuroanatomy Explorer

Drag to rotate · scroll to zoom · click regions to explore

View
Loading 3D model…

Click a region
to explore it

Memory Deck

Flip each card and rate whether you knew it. Your score is saved.

Term
Definition

Deck complete — score saved.

Match the Pairs

Match each term to its definition. Finish the board to earn your score.

All matched — score saved.

Concept Constellation

Every key idea in this course, mapped as an explorable 3D constellation. Drag to rotate, scroll to zoom, click a node.

Click a node to read its definition.

Programming Languages, Type Theory, and Semantics

Manual: General · Subject: Computer Science

Investigate the mathematical foundations of languages, types, program meaning, and verified compilation.

Meaning, Types, and Soundness

Research Focus

Programming languages research studies how syntax becomes meaning, how types prevent bugs, and how compilers preserve semantics. At a higher level, type systems can express capabilities, effects, ownership, and invariants that support safe abstraction and mechanical verification.

Semantics and Types

Operational semantics
Describes execution via state transitions.
Denotational semantics
Maps programs to mathematical objects representing meaning.
Type soundness
Well-typed programs do not get stuck, under the chosen semantics.
Parametricity
Uniform behavior for polymorphic code due to type abstraction.
ℹ️

Why Types Matter

Types are not just checking tools; in advanced systems they also serve as specifications, proof carriers, and optimization guides.

Static vs Dynamic Enforcement

Static typing

  • Catches many errors before execution
  • Can enable stronger compiler optimizations

Dynamic typing

  • Checks at runtime
  • Can increase flexibility and rapid prototyping

What does type soundness aim to guarantee?

What is parametricity in simple terms?

Verified Compilation and Correctness

A major research goal is proving that compiler transformations preserve source-level meaning. This includes correctness of optimization passes, preservation of security properties, and end-to-end verified toolchains.

Which semantics style most directly models execution as step-by-step state changes?

Why are effect systems useful in modern language design?