1/37
Vocabulary flashcards covering fundamental programming language concepts, binding, paradigms, syntax, semantics, and BNF grammars based on the lecture notes.
Name | Mastery | Learn | Test | Matching | Spaced | Call with Kai | Chat |
|---|
No analytics yet
Send a link to your students to track their progress
Programming Language (PL)
A formal notation for describing algorithms for execution by a computer, used for specifying, organizing, and reasoning about computation.
Twin Goals of Language Designers
Making computing convenient for people and making efficient use of the computing machine.
Clarity
A characteristic of a good programming language that describes how easily code written in the language can be read and understood.
Orthogonality
The property of a programming language where a relatively small set of primitive constructs can be combined systematically in a relatively small number of ways to build control and data structures.
Aliasing
The presence of two or more distinct referencing methods for the same memory location, such as when two variables refer to the same list object in memory.
Type Checking
The process of testing for type errors within a programming language to ensure program reliability.
Exception Handling
The capability of a programming language to intercept run-time errors and take corrective measures.
Binding
An association between an entity and an attribute, such as between a variable and its type or value, or between an operation and a symbol.
Static Binding
Early binding that occurs before runtime (at compile time) and remains unchanged throughout program execution, achieved using method overloading or operator overloading.
Dynamic Binding
Late binding that first occurs or can change during the execution of a program (at runtime), achieved using method overriding.
Execution Time (Runtime) Binding
Binding that takes place during program execution, such as binding variables to their values or to a particular storage location.
Translation Time (Compile Time) Binding
Address and structural binding performed before loading the program into memory, categorized into programmer, translator, and loader stages.
Imperative Languages
Procedural languages whose instructions are executed sequentially, such as BASIC, FORTRAN, COBOL, and PASCAL.
Functional Languages
Programming languages that emphasize the computation of values using expressions and functions as their primary building blocks.
Logic Languages
Rule-based languages dealing with predicates or relationships used for artificial intelligence applications, such as PROLOG, OPS5, and CLIPS.
Object-Oriented Languages
Languages emphasizing the definition of classes and objects, where instances of classes are created during program execution (e.g., Java, C#, C++).
Concurrent Languages
Languages designed for parallel execution via multiprogramming, multiprocessing, or distributed systems, such as Algo 68, Concurrent Pascal, CSP, ADA, and Occam.
Syntax
The set of rules that defines the combinations of symbols that are considered correct in a programming language.
Semantics
The interpretation or rigorous mathematical study of the meaning of syntactically valid sentences or code constructs in a programming language.
Lexeme
The lowest-level syntactic unit of a language, such as keywords, operators, or variable identifiers.
Token
A category or syntactic group of lexemes, such as identifier, equal_sign, int_literal, plus_op, or semicolon.
Language Recognizer
A device or compiler phase (such as a syntax analyzer) that reads input strings of a language and decides whether they belong to the language.
Language Generator
A device or set of rules that generates valid sentences of a language to allow syntax comparison.
Backus-Naur Form (BNF)
A widely known formal meta-language method developed by Noam Chomsky in the mid-1950s for describing context-free grammars and syntax.
Non-Terminal
Syntactic abstractions in BNF grammar rules that define syntactic entities and parts of the grammar, represented in angle brackets like ⟨digit⟩.
Terminal
Symbols in BNF grammar, including lexemes and tokens, that appear in final language statements and cannot be changed by production rules.
Parse Tree
A hierarchical graphical representation of a derivation showing how a statement is derived from grammar rules.
Ambiguous Grammar
A grammar that generates a sentential form that has two or more distinct parse trees for a single input string.
Readability
A general syntactic criterion focusing on how easily and intuitively source code can be understood by human programmers.
Writability
A general syntactic criterion measuring how easily and efficiently programmers can express algorithms and write code in a language.
Keyword
An identifier used as a fixed part of the syntax of a statement, such as if or for in C.
Reserved Word
A special word in a programming language syntax that cannot be used as a user-defined identifier, such as NULL.
Noise Words
Optional words inserted into statements to improve readability for human programmers.
Axiomatic Semantics
A semantic specification approach based on mathematical logic used for proving program correctness under specified conditions.
Denotational Semantics
A formal semantic technique that provides meaning by mapping programming language constructs directly into mathematical objects and functions.
Lexical Analysis (Scanner)
The compiler phase that reads character streams from source code, checks for legal tokens, and passes them to the syntax analyzer.

Syntactical Analysis (Parser)
The compiler phase that ensures all grammatical rules of the programming language have been properly followed.
Semantic Analysis
The central translation phase that acts as a bridge between analysis and synthesis, evaluating the meaning of syntactically valid code.