Back to 课程

Computer-science_A-level_Cie

0% Complete
0/0 Steps
  1. computers-and-components
    6 主题
  2. logic-gates-and-logic-circuits
    2 主题
  3. central-processing-unit-cpu-architecture
    6 主题
  4. assembly-language-
    4 主题
  5. bit-manipulation
    1 主题
  6. operating-systems
    3 主题
  7. language-translators
    2 主题
  8. data-security
    3 主题
  9. data-integrity
    1 主题
  10. ethics-and-ownership
    3 主题
  11. database-concepts
    3 主题
  12. database-management-systems-dbms-
    1 主题
  13. data-definition-language-ddl-and-data-manipulation-language-dml
    1 主题
  14. computational-thinking-skills
    1 主题
  15. algorithms
    14 主题
  16. data-types-and-records
    2 主题
  17. arrays
    2 主题
  18. files
    1 主题
  19. introduction-to-abstract-data-types-adt
    1 主题
  20. programming-basics
    1 主题
  21. constructs
    2 主题
  22. structured-programming
    1 主题
  23. program-development-life-cycle
    2 主题
  24. program-design-
    2 主题
  25. program-testing-and-maintenance
    3 主题
  26. user-defined-data-types
    1 主题
  27. file-organisation-and-access-
    3 主题
  28. floating-point-numbers-representation-and-manipulation
    3 主题
  29. protocols
    2 主题
  30. circuit-switching-packet-switching
    1 主题
  31. processors-parallel-processing-and-virtual-machines
    5 主题
  32. boolean-algebra-and-logic-circuits
    4 主题
  33. purposes-of-an-operating-system-os
    3 主题
  34. translation-software
    3 主题
  35. encryption-encryption-protocols-and-digital-certificates
    3 主题
  36. artificial-intelligence-ai
    4 主题
  37. recursion
    1 主题
  38. programming-paradigms
    4 主题
  39. object-oriented-programming
    7 主题
  40. file-processing-and-exception-handling
    2 主题
  41. data-representation
    5 主题
  42. multimedia
    3 主题
  43. compression
    2 主题
  44. networks-and-the-internet
    11 主题
课 Progress
0% Complete

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.

Responses

您的邮箱地址不会被公开。 必填项已用 * 标注