Study Guide

Declarative programming concepts

CIE A-Level Computer ScienceΒ· 40 min read

1. Core Definition: Declarative vs Imperativeβ˜…β˜…β˜†β˜†β˜†β± 10 min

πŸ“˜ Definition

Declarative Programming

A programming paradigm focused on describing what problem needs to be solved, rather than explicitly coding how to solve it step-by-step.

Example:

An SQL query that returns all students with a grade over 70 is declarative.

πŸ“ Worked Example

Compare declarative and imperative descriptions for the task of sorting a list of numbers

  1. 1

    The imperative approach explicitly defines every step of the solution: Iterate from index 0 to n-1, compare adjacent elements, swap if out of order, repeat until no swaps.

  2. 2

    The declarative approach only describes the desired end state, with no implementation steps: Return a new list containing all elements of the input, sorted in ascending order.

2. Key Characteristics of Declarative Programmingβ˜…β˜…β˜†β˜†β˜†β± 15 min

Declarative programming has four core characteristics that are regularly asked about in CIE exams:

  • No mutable side effects: Most declarative languages avoid changing shared state or mutable data, reducing bugs.

  • High abstraction: Implementation details are hidden from the programmer, who only defines requirements.

  • Referential transparency: A function will always return the same output for the same input, regardless of where it is called.

  • No explicit control flow: The language interpreter handles loops, conditionals, and search, not the programmer.

πŸ“ Worked Example

Identify which of the following code snippets is declarative, and explain why:

  1. 1

    Snippet 1: SELECT name FROM students WHERE grade > 70;

  2. 2

    Snippet 2: result = []; for s in students: if s.grade > 70: result.append(s.name)

  3. 3

    Snippet 1 (SQL) is declarative: it only describes what result we want, not how to scan the table or filter rows. This is handled by the SQL engine.

  4. 4

    Snippet 2 is imperative: it explicitly defines the loop, condition, and action to build the result, detailing every step of the process.

βœ“ Quick check

Test your understanding of core characteristics

  1. Which of the following is a core feature of declarative programming?

    • A) Explicit step-by-step control flow

    • B) Describing what result is required

    • C) Mutable shared state

    • D) Low-level memory management

    Reveal answer
    B β€”

    Correct. All other options are core features of imperative programming, not declarative.

3. Sub-paradigms of Declarative Programmingβ˜…β˜…β˜…β˜†β˜†β± 15 min

Declarative programming is an umbrella term for two main sub-paradigms that are explicitly covered in the CIE 9618 syllabus:

Sub-paradigm

Core Idea

Example Languages

Logic Programming

Programs are sets of facts and rules; the interpreter solves queries

Prolog

Functional Programming

Programs are built from pure functions, no mutable state

Haskell, Scala, Python (functional features)

πŸ“ Worked Example

Explain how Prolog code for ancestor relationships fits the declarative paradigm

  1. 1

    First, we define facts about parent relationships:

  2. 2

    parent(john, mary). parent(mary, ann).

  3. 3

    Next, we define rules for ancestor relationships:

  4. 4

    ancestor(X, Y) :- parent(X, Y). ancestor(X, Y) :- parent(X, Z), ancestor(Z, Y).

  5. 5

    This code only describes what is true, not how to find the answer to a query like ancestor(john, ann). The Prolog interpreter handles the search and matching steps, so this fits the declarative 'what not how' rule.

4. Common Pitfalls

Wrong move:

Claiming all declarative languages are functional, and that all functional code is purely declarative.

Why:

Declarative is a broad paradigm category; functional is just one sub-paradigm, and many functional languages allow imperative code.

Correct move:

State that functional programming is a sub-paradigm of declarative programming, and that logic programming is a separate, equally valid sub-paradigm.

Wrong move:

Confusing object-oriented programming (OOP) with declarative programming.

Why:

OOP is an imperative paradigm that organises code around mutable objects and step-by-step methods.

Correct move:

Remember OOP falls under the imperative umbrella, as it focuses on how to change object state to achieve a result.

Wrong move:

Claiming SQL is not declarative because it has procedural extensions.

Why:

CIE classifies core SQL queries as declarative; procedural extensions are optional add-ons not used for standard queries.

Correct move:

Confirm that standard SQL queries are declarative, as they describe the required result not how to retrieve it.

Wrong move:

Thinking declarative code is always more efficient than imperative code.

Why:

Efficiency depends on use case; hiding low-level implementation can make declarative code slower for some tasks.

Correct move:

Recognise that the main benefits of declarative code are reduced complexity and easier debugging, not guaranteed better performance.

5. Quick Reference Cheatsheet

Feature

Declarative Programming

Imperative Programming

Core Focus

What result is needed

How to produce the result

Control Flow

Handled by the language

Explicitly defined by programmer

S

i

d

e

E

f

f

e

c

t

s

U

s

u

a

l

l

y

a

v

o

i

d

e

d

C

o

m

m

o

n

a

n

d

e

x

p

e

c

t

e

d

Referential Transparency

Typically supported

Not required

Examples

SQL, Prolog, Haskell

C, Python, Java, OOP languages

6. Frequently Asked

What is the single most important distinction to remember for the exam?

The core distinction is what vs how: declarative = what result you want, imperative = how to get the result step-by-step.

Is SQL considered a declarative language for CIE 9618?

Yes, standard SQL queries are explicitly classified as declarative in the CIE syllabus, because they describe the result set, not how to retrieve it.

When this came up on past exams

AI-estimated based on syllabus patterns β€” cross-check with official past papers for accuracy. Use only as revision-focus signals.

  • 2022 Β· 1

    Compare paradigms short answer

  • 2023 Β· 1

    Identify declarative features MCQ