PPL PRELIM Flashcards
HEHE PU
What Are Programming Paradigms?
IMPERATIVE PARADIGM/PROCEDURAL PARADIGM
OBJECT-ORIENTED PARADIGM
FUNCTIONAL PARADIGM
LOGIC PARADIGM
Giving step-by-step instructions to the computer, like following a recipe.
Examples: Fortran, C.
IMPERATIVE PARADIGM
Using functions to process data without changing it, like using a machine to get results.
Examples: Lisp, Haskell.
FUNCTIONAL PARADIGM
Organizing data and actions into “objects,” like sorting items into categories.
Examples: C++, Java.
OBJECT-ORIENTED PARADIGM
Using rules and facts to answer questions, like solving puzzles with clues.
Example: Prolog.
LOGIC PARADIGM
The abilities and tools the language provides for programming.
LANGUAGE FEATURES
Different kinds of data the language can handle (e.g., numbers, text)
DATA TYPES
3 types of STRUCTURE
LEXICAL
SYNTACTIC
SEMANTIC
How symbols and words are combined into instructions.
SYNTACTIC
The meaning of these instructions.
SEMANTIC
Basic symbols and words.
LEXICAL
3 types of PROCESSING
COMPILATION
INTERPRETATION
PREPROCESSING
Initial setup tasks like including extra files.
PREPROCESSING
The process of translating the whole program into machine code before running it.
COMPILATION
The process of translating and running the program line by line.
INTERPRETATION
Understanding needs, planning, coding, testing, and ensuring it works.
PROGRAM DEVELOPMENT
Languages have advanced and become more complex over time.
EVOLUTION
What programming language uses both imperative and object-oriented styles.
C++
A programming language that is mainly object-oriented but includes imperative features.
JAVA
It is a programming language that is functional with some extra features.
LISP
How straightforward and easy the language is to use.
Simplicity/Orthogonality
Tools for managing the flow of the program (e.g., loops, conditionals).
CONTROL STRUCTURES
Types of data and how they are organized.
DATA TYPES AND STRUCTURES
These are the rules for writing code and its readability.
SYNTAX DESIGN
Hiding complex details behind simpler interfaces.
SUPPORT FOR ABSTRACTION
How well the language allows for complex ideas to be written.
EXPRESSIVENESS
Comparing and managing different data types.
TYPE EQUIVALENCE
Managing errors and unexpected conditions.
EXCEPTION HANDLING
Limiting how variables refer to the same memory location.
RESTRICTED ALIASING
The features of a language support effective coding practices, impacting program performance.
PROGRAM FEATURES
The way algorithms and data structures are chosen and implemented also affects reliability, readability, writability, reusability, and efficiency
PROGRAMMER’S ROLE
These are the first-generation languages in binary, directly understood by computers but hard for humans to use.
MACHINE LANGUAGES
These languages introduced mnemonics for binary instructions, making programming more manageable. Assemblers translate these into machine code.
ASSEMBLY LANGUAGES
Konrad Zuse’s early high-level language, used for complex calculations on early computers.
Plankalkül (1946)
First high-level language for electronic computing devices, required manual compilation.
Short Code (1949)
She developed the A0 compiler, a crucial advancement in language translation.
Grace Hopper (1951)
Early compiler by Alick E. Glennie for the Manchester Mark I, handling symbolic statements.
Autocoder (1952)
Developed by John Backus, introduced variables and simple control structures. Evolved through versions like Fortran II, IV, and later.
Fortran (1950s)