1/69
Looks like no tags are added yet.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai |
|---|
No analytics yet
Send a link to your students to track their progress
What is a data type?
A set of values and the operations allowed on those values.
What is type checking?
The process of ensuring type consistency throughout a program.
What is type inference?
Automatically determining the types of expressions based on context.
What are type constructors?
Mechanisms for creating new types from existing ones (arrays, records, pointers, unions, etc.).
What is a strongly typed language?
A language where all type errors must be detected before runtime.
What is a weakly typed language?
A language that permits operations that may result in type errors at runtime.
What are simple types?
Types with no internal structure beyond basic values (int, char, boolean, enums).
What is an enumerated type?
A type with explicitly listed named values.
What is a subrange type?
A type defined as a contiguous subset of another simple type.
What is structural type equivalence?
Two types are equivalent if they have the same structure.
What is name type equivalence?
Two types are equivalent only if they use the same type name.
What is a Cartesian product type?
A type formed from ordered pairs (implemented as structs or records).
What is a union type?
A type allowing values from multiple alternative types.
What is a discriminated union?
A union with a tag identifying which value type is stored.
What is an undiscriminated union?
A union without tags, unsafe because the type isn't known.
What is a pointer type?
A type whose values are memory addresses referring to another type.
What is a reference type?
Like a pointer but not manipulated directly (e.g., Java objects).
What is a recursive type?
A type defined in terms of itself (linked lists, trees).
What is parametric polymorphism?
Functions or types that work for any type parameter (generics).
What is overloading?
Same operator/function name used for different types.
What is implicit type conversion?
Automatic conversion inserted by the translator.
What is explicit type conversion?
A cast written explicitly by the programmer.
What is an expression?
Code that returns a value and ideally has no side effects.
What is a statement?
Code executed for side effects, returning no value.
What is short-circuit evaluation?
Evaluation of Boolean expressions stops once the result is known.
What is prefix notation?
Operator before operands.
What is postfix notation?
Operator after operands.
What is infix notation?
Operator between operands.
What is the sequence operator?
Allows multiple expressions to execute in order within another expression.
What is a guarded if?
An if with Boolean guards; only one true guard executes.
What is the dangling-else problem?
Ambiguity about which if a given else matches.
What rule fixes the dangling-else problem?
The closest-if rule: an else matches the nearest unmatched if.
What is a case/switch statement?
A multi-way branch based on a selector value.
What is a while loop?
Repeats while a condition is true.
What is a do-while loop?
Executes the loop body at least once before checking the condition.
What is a for loop?
Loop containing initialization, condition, and update expressions.
What is continue?
Skips the remaining loop body and starts the next iteration.
What is break?
Terminates the closest loop immediately.
What is the loop-and-a-half problem?
A loop that naturally needs an early exit in the middle; break solves it.
What is an exception?
An event indicating an error or unusual situation during execution.
What is raising an exception?
Triggering an exception event to interrupt normal control flow.
What is an exception handler?
Code that catches and processes an exception.
What is propagation of exceptions?
Searching up the call stack for a matching handler.
What is stack unwinding?
Exiting activation records while searching for a handler.
What is the termination model?
After handling an exception, execution continues after the handling block.
What is the resumption model?
Execution restarts from where the exception occurred.
What is a procedure?
A collection of computations executed when called.
What is a function?
A procedure that returns a value.
What is a procedure specification?
Includes name, parameters, and return type.
What is a procedure body?
The block of statements the procedure executes.
What are formal parameters?
The parameters listed in the procedure definition.
What are actual parameters?
The arguments supplied in the procedure call.
What is pass-by-value?
Argument values are copied; changes do not affect the caller.
What is pass-by-reference?
The caller's variable is passed; changes inside affect the caller.
What is pass-by-value-result?
Copy in at call, copy out on return.
What is pass-by-name?
Argument expressions are re-evaluated each time the parameter is used.
What is a closure?
The combination of a function's code and its defining environment.
What is an activation record?
Memory allocated for one execution of a procedure (locals, return address, parameters).
What is a control link?
Points to the caller's activation record.
What is an access link?
Points to the lexical (defining) environment for nested procedures.
What is access chaining?
Following multiple access links to reach a nonlocal variable.
What is a static environment?
All memory allocated at load time; no recursion.
What is a stack-based environment?
Activation records pushed and popped as procedures execute and return.
Why is a stack insufficient for first-class functions?
Closures may refer to variables whose activation records have already been popped.
What is dynamic memory allocation?
Allocation of storage at runtime using a heap.
What is garbage collection?
Automatic reclamation of unused memory.
What is reference counting?
Each object tracks how many references point to it; freed when count hits zero.
What is the major drawback of reference counting?
Cannot reclaim cycles.
What is mark-and-sweep?
Marks reachable objects, then sweeps unmarked ones into the free list.
What is generational garbage collection?
Divides objects by age; young objects collected more frequently.