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 主题
declarative-programming
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 |
|---|---|
|
|
A poodle is a companion dog |
|
|
A Labrador is a large-sized dog |
|
|
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 |
|
Rule |
A logical relationship built from facts (not shown here) |
|
Query |
A question to the knowledge base, e.g. |
|
Any order |
Facts and rules can appear in any order |
|
Result |
The interpreter matches patterns in queries against known facts |
Responses