Unit 11.1B · Term 1

Classifications of Programming Languages

Programming languages have evolved through generations — from raw binary to natural-language-like code. Understanding this evolution helps explain why we have different types of languages today.

Learning Objectives

  • 11.5.1.1 Describe generations of programming languages
  • 11.5.1.2 Distinguish between low-level and high-level languages
  • 11.5.1.5 Advantages and disadvantages of low-level languages
  • 11.5.1.6 Advantages and disadvantages of high-level languages

Lesson Presentation

11.1B-classifications-pl.pdf · Slides for classroom use

Conceptual Anchor

The Language Barrier Analogy

Imagine talking to someone who only speaks binary (machine code). You'd need a translator at every step. Low-level languages are like learning their dialect — closer to their language but harder for you. High-level languages are like speaking English and having an excellent translator (compiler/interpreter) handle the conversion.

Rules & Theory

Generations of Programming Languages

Generation Name Description Example
1GL Machine Code Raw binary (0s and 1s), directly executed by CPU 01001000 01100101
2GL Assembly Mnemonics (ADD, MOV, SUB), 1-to-1 mapping to machine code MOV AX, 5
3GL High-Level English-like syntax, portable, needs compiler/interpreter C++, Python, Java
4GL Very High-Level Problem-specific, closer to human language SQL, MATLAB, R
5GL Natural Language AI-driven, constraint-based programming Prolog, Mercury

Low-Level vs High-Level

Feature Low-Level (1GL, 2GL) High-Level (3GL+)
Readability Hard to read Easy to read
Portability Machine-specific Portable (cross-platform)
Speed Very fast execution Slower (needs translation)
Memory control Direct hardware access Abstracted from hardware
Debugging Very difficult Easier with modern tools
Learning curve Steep Gentle
Use case Drivers, OS, embedded systems Apps, websites, games

Same Program in Different Levels

Task: Add 5 + 3 Machine Code (1GL): 10110000 00000101 00000100 00000011 Assembly (2GL): MOV AL, 5 ADD AL, 3 Python (3GL): result = 5 + 3 SQL (4GL): SELECT 5 + 3;

Why Low-Level Still Matters

Operating systems, device drivers, and embedded systems (car ECU, pacemakers) use low-level languages because they need direct hardware control and maximum performance. Your microwave's firmware is probably written in C or assembly!

Common Pitfalls

Assembly = Machine Code

Assembly is NOT machine code. Assembly uses mnemonics (MOV, ADD) that are human-readable. It still needs an assembler to convert to machine code (binary).

Tasks

Remember

List the 5 generations of programming languages with an example of each.

Understand

Explain why high-level languages are portable but assembly language is not.

Analyze

A game developer needs maximum performance. Should they use Python or C++? Give 3 reasons.

Self-Check Quiz

Q1: What generation is Assembly language?

2nd Generation (2GL) — it uses mnemonics that map 1-to-1 to machine code.

Q2: Give 2 advantages of high-level languages.

Easier to read/write, portable across platforms, easier to debug, faster development.

Q3: Why would someone use a low-level language?

For direct hardware control, maximum execution speed, and minimal memory usage (e.g., OS development, drivers).