Computer-science_A-level_Cie
-
computers-and-components6 主题
-
logic-gates-and-logic-circuits2 主题
-
central-processing-unit-cpu-architecture6 主题
-
assembly-language-4 主题
-
bit-manipulation1 主题
-
operating-systems3 主题
-
language-translators2 主题
-
data-security3 主题
-
data-integrity1 主题
-
ethics-and-ownership3 主题
-
database-concepts3 主题
-
database-management-systems-dbms-1 主题
-
data-definition-language-ddl-and-data-manipulation-language-dml1 主题
-
computational-thinking-skills1 主题
-
algorithms14 主题
-
data-types-and-records2 主题
-
arrays2 主题
-
files1 主题
-
introduction-to-abstract-data-types-adt1 主题
-
programming-basics1 主题
-
constructs2 主题
-
structured-programming1 主题
-
program-development-life-cycle2 主题
-
program-design-2 主题
-
program-testing-and-maintenance3 主题
-
user-defined-data-types1 主题
-
file-organisation-and-access-3 主题
-
floating-point-numbers-representation-and-manipulation3 主题
-
protocols2 主题
-
circuit-switching-packet-switching1 主题
-
processors-parallel-processing-and-virtual-machines5 主题
-
boolean-algebra-and-logic-circuits4 主题
-
purposes-of-an-operating-system-os3 主题
-
translation-software3 主题
-
encryption-encryption-protocols-and-digital-certificates3 主题
-
artificial-intelligence-ai4 主题
-
recursion1 主题
-
programming-paradigms4 主题
-
object-oriented-programming7 主题
-
file-processing-and-exception-handling2 主题
-
data-representation5 主题
-
multimedia3 主题
-
compression2 主题
-
networks-and-the-internet11 主题
syntax-rules
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. |
|
Terminal |
An actual value or symbol (e.g. |
|
::= |
“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:

Examples

Responses