Syntax Rules (Cambridge (CIE) A Level Computer Science): Revision Note

Exam code: 9618

Robert Hampton

Written by: Robert Hampton

Reviewed by: James Woodhouse

Updated on

BNF & syntax diagrams

  • When writing programs, you must follow a set of strict rules known as syntax — the structure that defines how code must be written.

    • Just like spoken languages have grammar rules, programming languages have syntax rules

    • Each language has its own syntax, e.g. Python uses indentation, Java uses semicolons

  • Programs are first written in source code (a high-level language like Python, Java, etc.)

  • To run the program, this source code must be translated into machine code

  • For translation to work, syntax must be precisely defined to avoid ambiguity

  • Translators (compilers or interpreters) rely on these rules to correctly convert the program into a form the CPU can understand

Regular expressions and meta-languages

  • Regular expressions are used to describe simple patterns in text or syntax

  • Many programming constructs (like variable names or simple statements) can be defined using regular expressions

  • However

    • Some aspects of a programming language are too complex for regular expressions alone

  • When regular expressions aren't enough, we use a meta-language

  • A language used to describe the structure of another language

  • The most common example is Backus-Naur Form (BNF) or syntax diagrams

  • These allow us to define:

    • Full grammar rules

    • Nested structures

    • Hierarchical syntax

What is Backus-Naur form (BNF)?

  • BNF is a meta-language, a way of writing rules that define the syntax of programming languages or data structures

  • BNF is used to:

    • Describe formal grammar

    • Define how statements and expressions are structured

    • Ensure that syntax rules are unambiguous and machine-readable

  • BNF uses a set of rules made up of:

Term

Meaning

Non-terminal

A category or component (e.g. <digit>, <identifier>)

Terminal

An actual value or symbol (e.g. 0, 1, +, if)

::=

"Is defined as", separates the name from its definition

|

"or", it gives alternative definitions

Example 1

<digit> ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
<number> ::= <digit> | <digit> <number>
  • <digit> is defined as any single digit 0–9

  • <number> is defined as:

    • a single digit, or

    • a digit followed by another number (i.e. multiple digits)

Example 2

  • <number> contains one or more digits

  • BNF for <number> and use it to define <IDcode>, which consists of a <number> followed by either a <letter> or another <number>

<number> ::= <digit> | <number><digit>
<IDcode> ::= <number><letter> | <number><number>
  • Recursive definition of one or more items

  • Use of | for choice

  • Application to a second rule with multiple components

What is a syntax diagram?

  • A syntax diagram is a graphical representation of BNF (meta-language)

  • It uses symbols to map directly to the structure of BNF

  • The symbols used are:

Diagram showing a terminal element in a circle and two non-terminal elements in rectangles with different annotations for further breakdown and reuse.

Examples

Flowchart showing letters A, B, and C as valid options, and a formula calculating area as length multiplied by width in a sequence of shapes.

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.