🧠 Jin Hyun Park

Jin Hyun Park / Qual Exam Prep / Things to remember

Things to remember

Facts that did not fit anywhere else: programming languages, digital logic, memory management, and a little discrete math.

Compiler vs. interpreter

CompilerInterpreter
Translates the whole program in one pass, before it runsTranslates and runs the program one statement at a time
Translation and execution are separate stepsTranslation and execution are interleaved
Higher memory use during compilationLower memory use
Reports all errors at once, before running anythingReports each error when it reaches that line
Example: C, C++Example: Python

Instance methods vs. static methods

Call stack

What happens on a procedure call

Stack frame

Functional completeness

A set of logic gates is functionally complete if every Boolean function can be built from it. Each of the following sets is complete:

Sequential vs. combinational circuits

DMA (direct memory access)

Distributed systems

Symmetric difference

Venn diagram with the symmetric difference of two sets shaded
Source: Wikipedia

Static (lexical) scoping vs. dynamic scoping

Direct vs. indirect representation

Ripple-carry adder

Semi-space copying collection

Slide illustrating semi-space copying: reachable objects are copied compactly into the second semi-space
Source: InfoQ, garbage collector terminology

Church–Turing thesis

Also called Church's thesis, Church's conjecture, or Turing's thesis.

Master theorem

Raymond's tree-based algorithm

The four principles of object-oriented programming

Distributing quantifiers over "or"

1's complement vs. 2's complement

Logic vocabulary

Static allocation vs. stack allocation

Garbage collection

Overview · Useful materials · Sample questions · Algorithms · Architecture · OS · Networking · Databases · Automata · AI / ML