Skip to content

PL topics for qualification exams.

Jeffrey M. Young edited this page Jan 10, 2020 · 5 revisions

This is a page to brainstorm topics that should be reviewed for the qualification exam.

Feel free to add topics (would also help to mention the class name associated).

  • Dynamic vs static typing [CS 581].

  • Lambda calculus (untyped, simply typed) [CS 581].

  • Small vs big step semantics [CS 585].

    • Pros and cons of each
    • Which is easier to prove properties of?
    • Which is easier to recover errors in?
    • Which gives more flexibility to the implementor?
  • Denotational vs operational semantics [CS 585].

  • Why the let construct should be a construct and not syntactic sugar [CS 582]

  • Explain the curry-howard isomorphism

    • What kind of logic is it based on?
    • How does it's logic differ from classical logic?
    • What does this mean for the data types in dependent type theory?
  • General Programming language stuff

    • What is a type? [CS 581]
    • What is type safety? [TAPL book, CS 582]
    • How does one prove type safety? (There are two commonly accepted steps) [TAPL book]
    • What does it mean for a language to be safe? [TAPL book]
    • Describe variable capture using simply typed lambda calculus [CS 581]
    • What is call-by-name, call-by-value, call-by-need, and how do they compare? [CS 581]
    • Describe the church-rosser theorem? Why is it important [CS 581]
    • Define concrete syntax
    • Define abstract syntax
    • What is a programming language, precisely?
  • General CS stuff related to PL

    • What is computation?
    • What is the Chomsky hierarchy?

Clone this wiki locally