Declarative Programming (Cambridge (CIE) A Level Computer Science): Revision Note

Exam code: 9618

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

Declarative programming

How do I write declarative code?

  • Declarative programming is a paradigm where you describe what you want the program to accomplish, not how to do it

  • SQL is a common example of declarative programming

  • It allows you to extract and manipulate data using queries, without needing to specify the control flow

  • SQL was covered in more detail in Section 8 – SQL

  • Declarative code is made up of:

    • Facts – things that are known or assumed to be true

    • Rules – logical relationships between facts

  • Unlike imperative programming, where order and control flow are essential, declarative code allows you to define facts and rules in any order, and then write a query that uses them

  • In the following examples, a logic-based declarative language (like Prolog) is used

Example: Facts about dog breeds

type(beagle, hound).
type(labrador, retriever).
type(poodle, companion).
type(golden_retriever, retriever).
type(bulldog, companion).

size(beagle, medium).
size(labrador, large).
size(poodle, medium).
size(golden_retriever, large).
size(bulldog, medium).

shedding(beagle, moderate).
shedding(labrador, heavy).
shedding(poodle, low).
shedding(golden_retriever, heavy).
shedding(bulldog, low).

Interpreting clauses

  • Each fact uses the format:

predicate(object, property).

Clause

Meaning

type(poodle, companion).

A poodle is a companion dog

size(labrador, large).

A Labrador is a large-sized dog

shedding(bulldog, low).

A bulldog has low shedding

Sample queries

  • Use queries to retrieve information from the facts

?- size(poodle, medium).
true.

?- type(X, retriever).
X = labrador ;
X = golden_retriever.

?- shedding(X, low), size(X, medium).
X = poodle ;
X = bulldog.

Key points

Concept

Description

Fact

A statement like type(beagle, hound). that is always true

Rule

A logical relationship built from facts (not shown here)

Query

A question to the knowledge base, e.g. size(X, medium).

Any order

Facts and rules can appear in any order

Result

The interpreter matches patterns in queries against known facts

You've read 0 of your 5 free revision notes this week

Unlock more, it's free!

Join the 100,000+ Students that ❤️ Save My Exams

the (exam) results speak for themselves:

Did this page help you?

Robert Hampton

Author: Robert Hampton

Expertise: Computer Science Content Creator

Rob has over 16 years' experience teaching Computer Science and ICT at KS3 & GCSE levels. Rob has demonstrated strong leadership as Head of Department since 2012 and previously supported teacher development as a Specialist Leader of Education, empowering departments to excel in Computer Science. Beyond his tech expertise, Robert embraces the virtual world as an avid gamer, conquering digital battlefields when he's not coding.

James Woodhouse

Reviewer: James Woodhouse

Expertise: Computer Science & English Subject Lead

James graduated from the University of Sunderland with a degree in ICT and Computing education. He has over 14 years of experience both teaching and leading in Computer Science, specialising in teaching GCSE and A-level. James has held various leadership roles, including Head of Computer Science and coordinator positions for Key Stage 3 and Key Stage 4. James has a keen interest in networking security and technologies aimed at preventing security breaches.