Programming Language Paradigms – Chapter 1 Vocabulary

0.0(0)
studied byStudied by 0 people
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
Card Sorting

1/54

flashcard set

Earn XP

Description and Tags

A vocabulary deck of 55 flashcards covering key terms from Chapter 1: Preliminaries of Programming Language Paradigms.

Study Analytics
Name
Mastery
Learn
Test
Matching
Spaced

No study sessions yet.

55 Terms

1
New cards

Programming Language Paradigms

Distinct models or styles of programming (e.g., imperative, functional, logic) that shape how programs are written and executed.

2
New cards

Ambiguous Grammar

A grammatical structure that allows multiple valid parses for the same sentence, common in natural languages but avoided in programming languages.

3
New cards

Alphabet (of a language)

The complete set of symbols or characters from which strings of the language are formed.

4
New cards

Lexicon

The vocabulary of a language—the full set of valid words or tokens.

5
New cards

Syntax

Formal rules that govern how words and symbols combine to form valid phrases, statements, or programs.

6
New cards

Grammar (formal)

The overall system of rules (syntax + formation principles) that define which strings belong to a language.

7
New cards

Semantics

The meaning or interpretation assigned to syntactically correct strings in a language.

8
New cards

Orthography

The writing conventions of a language, including spelling and punctuation.

9
New cards

Morphology

The study of the internal structure and formation of words.

10
New cards

Phonology

The study of sound patterns and phonetic elements within a language.

11
New cards

Typology

The classification of languages based on shared structural or functional features.

12
New cards

Natural Human Language

Languages that evolved naturally among people, such as English or Mandarin, characterized by ambiguous grammar.

13
New cards

Constructed Human Language

A deliberately invented language (e.g., Esperanto, Klingon) often designed for specific goals or experimentation.

14
New cards

Programming Language

A formal, unambiguous language used to instruct computers through precisely defined syntax and semantics.

15
New cards

Noam Chomsky

Theoretical linguist who introduced formal language hierarchies that influence programming language grammar design.

16
New cards

John Backus

Computer scientist who led the creation of FORTRAN and invented Backus–Naur Form (BNF) for formal syntax description.

17
New cards

Reasons for Studying PL Concepts

Benefits such as improved idea expression, better language choice, easier learning of new languages, and advancement of computing.

18
New cards

Associative Array

A data structure storing (key, value) pairs, also called a map or dictionary.

19
New cards

Readability

The ease with which humans can read and understand a program’s source code.

20
New cards

Writability

The ease with which a language allows programmers to create programs for a problem domain.

21
New cards

Reliability (language criterion)

The degree to which programs written in a language perform according to specifications under all conditions.

22
New cards

Cost (language evaluation)

The total expense of using a language, including training, compilation, execution, maintenance, and reliability impacts.

23
New cards

Orthogonality (in languages)

Design principle where a small set of primitive constructs can be combined consistently, reducing exceptions and complexity.

24
New cards

Operator Overloading

Allowing an operator symbol to have different behaviors based on operand types, potentially impacting readability.

25
New cards

Type Checking

The process of verifying that operands in expressions are of compatible types, either at compile time or runtime.

26
New cards

Exception Handling

Language facilities for intercepting and managing runtime errors to allow continued program execution.

27
New cards

Aliasing

The situation where multiple names reference the same memory location, potentially reducing reliability.

28
New cards

von Neumann Architecture

Stored-program computer model where program instructions and data share memory, influencing imperative languages.

29
New cards

von Neumann Bottleneck

Performance limitation caused by the limited data transfer rate between CPU and memory in von Neumann machines.

30
New cards

Imperative Programming

Programming paradigm centered on statements that change program state through assignments and control flow.

31
New cards

Procedural Programming

Subset of imperative programming that structures code into subroutines or procedures for reuse and clarity.

32
New cards

Functional Programming

Paradigm that treats computation as evaluation of mathematical functions and avoids mutable state.

33
New cards

Logic Programming

Paradigm based on declaring facts and rules; computation is performed by automated theorem proving (e.g., Prolog).

34
New cards

Declarative Language

Language category in which the programmer specifies what the program should accomplish, not how (includes functional and logic languages).

35
New cards

Markup/Programming Hybrid

A markup language enhanced with programming constructs (e.g., JSTL, XSLT) often used in web contexts.

36
New cards

Data Abstraction

The ability to define complex data structures while hiding implementation details from the user.

37
New cards

Process Abstraction

The ability to encapsulate a sequence of operations (e.g., subprogram) so details can be ignored by callers.

38
New cards

Compilation

Implementation method that translates source code into machine language before execution, yielding fast runtime performance.

39
New cards

Pure Interpretation

Execution method where source statements are executed directly by an interpreter without a prior translation step.

40
New cards

Hybrid Implementation System

Approach that compiles source code to an intermediate language, which is then interpreted or further compiled (e.g., Java bytecode).

41
New cards

Just-In-Time (JIT) Compilation

Runtime technique that compiles intermediate code into machine code on demand, combining interpretation flexibility with compilation speed.

42
New cards

Linking

Process of combining object files and libraries into a single executable program.

43
New cards

Load Module

The final executable image (e.g., .exe) produced after linking, ready to be loaded into memory.

44
New cards

Preprocessor

Tool that processes source files before compilation, expanding directives like #include and #define.

45
New cards

Java Virtual Machine (JVM)

Platform-independent runtime environment that interprets or JIT-compiles Java bytecode.

46
New cards

Expressivity

A language’s capacity to concisely express a wide range of computations and ideas.

47
New cards

Support for Abstraction

Language features (e.g., classes, modules, functions) that facilitate hiding complexity and managing large systems.

48
New cards

Simplicity (evaluation criterion)

Measure of how few and consistent the constructs of a language are, aiding in readability and writability.

49
New cards

Overall Simplicity

Language design goal of having a manageable feature set with minimal redundancy and operator multiplicity.

50
New cards

Language Trade-Off: Reliability vs Cost

Design balance where safety features increase reliability but may slow execution or raise development costs.

51
New cards

Language Trade-Off: Readability vs Writability

Situation where concise, flexible code may reduce readability, or verbose clarity can hinder rapid writing.

52
New cards

Embedded Systems Domain

Programming domain focused on software for dedicated hardware with limited resources (e.g., automotive controllers).

53
New cards

3-D Graphics Domain

Programming area involving high-resolution rendering for film or games, emphasizing performance in languages like C/C++.

54
New cards

Scripting Language

High-level, often interpreted language designed for quick development and automation (e.g., Python, PHP, JavaScript).

55
New cards

Lambda Calculus

Formal system for expressing computation via function abstraction and application; theoretical basis of functional languages.