Principles of Programming Languages

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

1/37

flashcard set

Earn XP

Description and Tags

Vocabulary flashcards covering fundamental programming language concepts, binding, paradigms, syntax, semantics, and BNF grammars based on the lecture notes.

Last updated 9:57 AM on 9/14/26
Name
Mastery
Learn
Test
Matching
Spaced
Call with Kai
Chat

No analytics yet

Send a link to your students to track their progress

38 Terms

1
New cards

Programming Language (PL)

A formal notation for describing algorithms for execution by a computer, used for specifying, organizing, and reasoning about computation.

2
New cards

Twin Goals of Language Designers

Making computing convenient for people and making efficient use of the computing machine.

3
New cards

Clarity

A characteristic of a good programming language that describes how easily code written in the language can be read and understood.

4
New cards

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.

5
New cards

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.

6
New cards

Type Checking

The process of testing for type errors within a programming language to ensure program reliability.

7
New cards

Exception Handling

The capability of a programming language to intercept run-time errors and take corrective measures.

8
New cards

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.

9
New cards

Static Binding

Early binding that occurs before runtime (at compile time) and remains unchanged throughout program execution, achieved using method overloading or operator overloading.

10
New cards

Dynamic Binding

Late binding that first occurs or can change during the execution of a program (at runtime), achieved using method overriding.

11
New cards

Execution Time (Runtime) Binding

Binding that takes place during program execution, such as binding variables to their values or to a particular storage location.

12
New cards

Translation Time (Compile Time) Binding

Address and structural binding performed before loading the program into memory, categorized into programmer, translator, and loader stages.

13
New cards

Imperative Languages

Procedural languages whose instructions are executed sequentially, such as BASIC, FORTRAN, COBOL, and PASCAL.

14
New cards

Functional Languages

Programming languages that emphasize the computation of values using expressions and functions as their primary building blocks.

15
New cards

Logic Languages

Rule-based languages dealing with predicates or relationships used for artificial intelligence applications, such as PROLOG, OPS5, and CLIPS.

16
New cards

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++).

17
New cards

Concurrent Languages

Languages designed for parallel execution via multiprogramming, multiprocessing, or distributed systems, such as Algo 68, Concurrent Pascal, CSP, ADA, and Occam.

18
New cards

Syntax

The set of rules that defines the combinations of symbols that are considered correct in a programming language.

19
New cards

Semantics

The interpretation or rigorous mathematical study of the meaning of syntactically valid sentences or code constructs in a programming language.

20
New cards

Lexeme

The lowest-level syntactic unit of a language, such as keywords, operators, or variable identifiers.

21
New cards

Token

A category or syntactic group of lexemes, such as identifier, equal_sign, int_literal, plus_op, or semicolon.

22
New cards

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.

23
New cards

Language Generator

A device or set of rules that generates valid sentences of a language to allow syntax comparison.

24
New cards

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.

25
New cards

Non-Terminal

Syntactic abstractions in BNF grammar rules that define syntactic entities and parts of the grammar, represented in angle brackets like digit\langle digit \rangle.

26
New cards

Terminal

Symbols in BNF grammar, including lexemes and tokens, that appear in final language statements and cannot be changed by production rules.

27
New cards

Parse Tree

A hierarchical graphical representation of a derivation showing how a statement is derived from grammar rules.

28
New cards

Ambiguous Grammar

A grammar that generates a sentential form that has two or more distinct parse trees for a single input string.

29
New cards

Readability

A general syntactic criterion focusing on how easily and intuitively source code can be understood by human programmers.

30
New cards

Writability

A general syntactic criterion measuring how easily and efficiently programmers can express algorithms and write code in a language.

31
New cards

Keyword

An identifier used as a fixed part of the syntax of a statement, such as ifif or forfor in C.

32
New cards

Reserved Word

A special word in a programming language syntax that cannot be used as a user-defined identifier, such as NULLNULL.

33
New cards

Noise Words

Optional words inserted into statements to improve readability for human programmers.

34
New cards

Axiomatic Semantics

A semantic specification approach based on mathematical logic used for proving program correctness under specified conditions.

35
New cards

Denotational Semantics

A formal semantic technique that provides meaning by mapping programming language constructs directly into mathematical objects and functions.

36
New cards

Lexical Analysis (Scanner)

The compiler phase that reads character streams from source code, checks for legal tokens, and passes them to the syntax analyzer.

<p>The compiler phase that reads character streams from source code, checks for legal tokens, and passes them to the syntax analyzer.</p>
37
New cards

Syntactical Analysis (Parser)

The compiler phase that ensures all grammatical rules of the programming language have been properly followed.

38
New cards

Semantic Analysis

The central translation phase that acts as a bridge between analysis and synthesis, evaluating the meaning of syntactically valid code.