1/43
Vocabulary study cards covering core programming language concepts, implementation models, bindings, scoping, memory management, and data types from HW1-HW3.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Expressivity
How easy or difficult a programming language makes it to write a computation.
Orthogonality
When a programming language has a small set of basic features that can be combined in a small number of consistent ways to build programs.
Writability
How easy it is for a programmer to use a language to write code and solve a problem. It should be considered with respect to a problem domain.
Abstraction Support
How well a programming language lets you use complex structures or operations without needing to focus on all of the underlying details.
Exception Handling
How a programming language deals with runtime errors so the program can respond to the problem and keep running.
Case-Sensitive Names
Names that differ only by uppercase and lowercase letters are treated as different names.
Multiple-Line Comment
A comment that uses delimiters at the beginning and end and can span multiple lines.
One-Line Comment
A comment that starts with a delimiter and automatically ends at the end of the line.
Linker
Takes compiled program code and required library or operating-system code and combines them into an executable program.
Compilation
Translates source code into machine or object code before the program runs.
Interpretation
Executes a program through an interpreter rather than translating the entire program to machine code before execution.
Hybrid Implementation
Combines compilation and interpretation, such as Java compiling source code to bytecode that runs on the JVM.
Imperative Language
A language in which statements tell the computer the steps to follow to solve a problem.
Declarative Language
A language in which statements describe what should be accomplished without specifying every step for doing it.
Source Code
Code written by the programmer in a programming language.
Object Code
Machine-level code produced after source code is compiled.
Binding
An association between an entity and an attribute, such as connecting a variable to a type, value, or memory location.
Binding Time
The time at which a binding is created.
Language Design Time
When language features, syntax, and certain predefined names or rules are chosen.
Language Implementation Time
When details of a particular implementation of a language are chosen.
Compile Time
The period when source code is translated and checked by the compiler.
Link/Load Time
When separately compiled program units are combined and loaded into memory.
Execution Time
The period while the program is running.
Static Binding
A binding that occurs before execution and normally does not change while the program runs.
Dynamic Binding
A binding that occurs while the program is running.
Stack-Dynamic Variable
A variable whose storage is allocated when its declaration is reached during execution and deallocated when that program unit finishes.
Lifetime
The period of time during program execution when a variable is bound to a specific memory location.
Scope
The part of a program where a variable or name is visible and can be referenced.
Static Scoping
Determines which variable is referenced based on the program's source-code structure.
Dynamic Scoping
Determines which variable is referenced based on the calling sequence of active program units.
Referencing Environment
The collection of all names or variables visible to a statement at a particular point in a program.
Primitive Data Type
A data type that is not defined using other data types.
Array
A collection of elements of the same data type where each element is identified by its position or index.
Ordinal Data Type
A data type whose possible values can be placed in a one-to-one correspondence with a set of integers and have a defined order.
Call Stack
An area of memory used to keep track of active function or method calls.
Heap
An area of memory used for dynamically allocated data.
Dangling Reference
A reference or pointer that still points to a memory location after that memory has been deallocated.
Reserved Word
A word that is part of a programming language's syntax and cannot be used as a programmer-defined name.
Java Reserved Words: for and public
In Java, for and public are reserved words; main is not a reserved word.
Row-Major Order
An array storage method in which all elements of one row are stored consecutively before the next row.
Unicode
A character-encoding standard designed to represent characters from many languages and symbol sets.
ASCII
A smaller character-encoding standard originally using 7 bits and representing a limited set of characters.
Bytecode
Intermediate code produced by some compilers, such as Java, that is executed by a virtual machine.
JVM
Java Virtual Machine; the runtime environment that executes Java bytecode.