Organization of Programming Languages Study Notes

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/87

flashcard set

Earn XP

Description and Tags

A complete collection of vocabulary flashcards for reviewing Organization of Programming Languages definitions and glossary terms for midterm preparation.

Last updated 2:26 AM on 10/6/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

88 Terms

1
New cards

Readability

How easily programs can be read and understood.

2
New cards

Writability

How easily a language can be used to create programs.

3
New cards

Reliability

Whether programs perform to their specifications under all conditions.

4
New cards

Cost

The total of training, writing, compiling, running, maintaining, and poor-reliability costs.

5
New cards

Simplicity

Few basic constructs and little feature multiplicity.

6
New cards

Orthogonality

A small set of primitives can be combined in a few ways, and every combination is legal.

7
New cards

Expressivity

Convenient ways of specifying computations (count++, for loops).

8
New cards

Aliasing

Two names referring to the same memory location.

9
New cards

Name (identifier)

A string that represents an entity in a program.

10
New cards

Binding

An association between an entity and an attribute, such as a variable and its type or value.

11
New cards

Binding time

The moment a binding is made.

12
New cards

Static binding

A binding that occurs before runtime and doesn't change.

13
New cards

Dynamic binding

A binding that occurs at runtime or can change during execution.

14
New cards

Language design time

When the language is defined (meaning of *, keywords).

15
New cards

Language implementation time

When the compiler or interpreter is built (int range, float format).

16
New cards

Compile time

When a program is translated (declared types, static scope).

17
New cards

Load time

When the program is loaded into memory (static variable addresses).

18
New cards

Runtime

While the program executes (values, stack-dynamic storage, dynamic types).

19
New cards

Scope

The range of statements in which a variable is visible.

20
New cards

Visible

A variable is visible in a statement if it can be referenced there.

21
New cards

Static scope

Which declaration a name refers to is decided at compile time from the program's textual structure.

22
New cards

Dynamic scope

Which declaration a name refers to is decided at runtime from the calling sequence.

23
New cards

Local variable

Declared inside the current function or block.

24
New cards

Nonlocal variable

Declared in an enclosing scope but visible in the current one.

25
New cards

Global variable

Declared outside all functions.

26
New cards

Hiding

A same-named inner variable blocks the outer one inside its scope.

27
New cards

Lifetime

The time during which a variable is bound to a memory cell.

28
New cards

Referencing environment

The collection of all names visible at a statement.

29
New cards

Named constant

A variable bound to a value only once, at binding time.

30
New cards

Static variable

Bound to memory before execution begins and kept until the program ends.

31
New cards

Stack-dynamic variable

Storage bound when its declaration is elaborated at runtime (on subprogram entry) and released on return.

32
New cards

Explicit heap-dynamic variable

Storage allocated and freed by explicit instructions (new, malloc/free).

33
New cards

Implicit heap-dynamic variable

Storage allocated automatically on assignment (Python lists).

34
New cards

Dynamic type binding

A variable's type is bound at runtime when a value is assigned.

35
New cards

Data type

A collection of data objects and a set of predefined operations on those objects.

36
New cards

Descriptor

The collection of attributes of a variable.

37
New cards

Primitive data type

A data type not defined in terms of other data types.

38
New cards

Object

An instance of a user-defined (abstract data) type.

39
New cards

Integer

An almost exact reflection of the hardware; Java has byte, short, int, and long.

40
New cards

Floating point

Models real numbers as approximations; at least float and double; IEEE 754 format.

41
New cards

Rational

A ratio of integers, stored as a pair of integers; supports precise arithmetic.

42
New cards

Complex

Two floats, a real part and an imaginary part.

43
New cards

Decimal

A fixed number of decimal digits stored in BCD, for business applications; accurate, but limited range and wastes memory.

44
New cards

BCD (binary coded decimal)

Each decimal digit gets its own binary code (254=0010 0101 0100254 = 0010\,0101\,0100). At least 4 bits per digit.

45
New cards

Boolean

Two values, true and false; could be bits, often bytes.

46
New cards

Character

Stored as numeric codings (ASCII, 16-bit Unicode, 32-bit Unicode).

47
New cards

Twos complement

A negative integer is stored as the complement of the positive number, plus one.

48
New cards

Precision

Accuracy of the fractional part of a float, measured in bits.

49
New cards

Range

The span of values, mostly set by the range of exponents.

50
New cards

Character string type

Values are character sequences.

51
New cards

Static length string

Length fixed at creation (COBOL, Java String).

52
New cards

Limited dynamic length string

A maximum is set, and a special code (0) marks the end of the content (C, C++).

53
New cards

Dynamic length string

No maximum (SNOBOL, Perl, JavaScript, Lisp, Python).

54
New cards

Ordinal type

A type whose possible values can be readily associated with the positive integers, with a distinct ordering.

55
New cards

Enumeration type

All possible values are named constants provided in the definition. No order implied.

56
New cards

Subrange type

An ordered contiguous subsequence of an ordinal type (e.g., 12..18 of integer).

57
New cards

Array

A homogeneous aggregate of data elements in which an individual element is identified by its position relative to the first element.

58
New cards

Access function

Maps subscript expressions to a memory address in a contiguous block.

59
New cards

Row-major order

Rows are stored one after another (most languages).

60
New cards

Column-major order

Columns are stored one after another (Fortran).

61
New cards

Static array

Subscript ranges and storage are bound statically (before runtime).

62
New cards

Fixed stack-dynamic array

Subscript ranges are static, but allocation happens at declaration time.

63
New cards

Stack-dynamic array

Subscript ranges and storage are bound dynamically.

64
New cards

Fixed heap-dynamic array

Like fixed stack-dynamic, but bound when requested and allocated from the heap.

65
New cards

Heap-dynamic array

Subscript ranges and storage bound dynamically, and the array can grow or shrink.

66
New cards

Array descriptor

The information an array needs: element type, index type, number of dimensions, index ranges, address.

67
New cards

Associative array

An unordered collection of values indexed by an equal number of keys (also hash tables, tables, dictionaries). Keys are arguments to a mapping function that gives the address of the value.

68
New cards

Set (Python)

An unordered collection of unique items. Items can be added and removed; frozenset is immutable.

69
New cards

Tuple (Python)

An ordered, non-changeable collection that can be indexed. Often used for returning multiple values.

70
New cards

Packing/unpacking

(x,y,z) = myTuple assigns each item to a variable.

71
New cards

Record

A possibly heterogeneous aggregate of elements identified by names.

72
New cards

Elliptical reference

Referencing a record field without naming the record.

73
New cards

Field offset

The distance of a field from the start of the record.

74
New cards

Bit vector

A set implementation using one bit per possible value.

75
New cards

Hash table

A structure where a hash function turns a key into a storage location.

76
New cards

Pointer

A variable whose values are memory addresses plus a special value, nil.

77
New cards

Dereferencing

Returning the value stored at the location the pointer holds.

78
New cards

Reference type

A pointer-like type; in Java, a reference to an object rather than a memory address.

79
New cards

Dangling pointer

A pointer to a heap-dynamic variable that has been deallocated.

80
New cards

Lost heap-dynamic variable

An allocated variable no longer accessible to the user program.

81
New cards

Heap

The area where storage is dynamically created.

82
New cards

Type checking

Ensuring that the operands of an operator are of compatible types.

83
New cards

Compatible type

One that is legal for the operator or can be implicitly converted by compiler-generated code.

84
New cards

Coercion

The compiler automatically converts an operand's type to one compatible with its operator.

85
New cards

Type error

Applying an operator to an operand of an inappropriate type.

86
New cards

Strongly typed

Type errors are always detected. Coercion can weaken it.

87
New cards

Name type equivalence

Two variables have equivalent types if they are in the same declaration or use the same type name. Easy to implement, but restrictive.

88
New cards

Structure type equivalence

Two variables have equivalent types if their types have identical structures. More flexible, but harder to implement.