eyeprolog 1.5.20 → 1.5.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/the-art-of-eyeprolog.md +60 -0
package/package.json
CHANGED
package/the-art-of-eyeprolog.md
CHANGED
|
@@ -5547,6 +5547,21 @@ and document the command line; the conformance corpus fixes success, failure,
|
|
|
5547
5547
|
mode, and error behavior. Use this part for working practice and those chapters
|
|
5548
5548
|
for exact reference.
|
|
5549
5549
|
|
|
5550
|
+
### Historical note: the practical language becomes portable
|
|
5551
|
+
|
|
5552
|
+
By the late 1970s and 1980s, Prolog had spread from its Marseille origins into
|
|
5553
|
+
several implementation traditions. The Edinburgh and DECsystem-10 lineage in
|
|
5554
|
+
particular helped establish a practical programming vocabulary around ordered
|
|
5555
|
+
control, term inspection, dynamic clauses, operators, and streams. These
|
|
5556
|
+
facilities made Prolog useful far beyond theorem-proving examples, but
|
|
5557
|
+
differences between systems also made portability a recurring concern.
|
|
5558
|
+
|
|
5559
|
+
ISO/IEC 13211-1:1995 gave that accumulated practice a common core. It did not
|
|
5560
|
+
freeze the language: constraints, modules, tabling, coroutining, and other
|
|
5561
|
+
facilities continued to develop in implementations and later standardization
|
|
5562
|
+
work. What the standard supplied was a stable shared account of ordinary Prolog
|
|
5563
|
+
terms, control, state, errors, and I/O against which extensions could be named.
|
|
5564
|
+
|
|
5550
5565
|
# Part IX — Reference as practice
|
|
5551
5566
|
|
|
5552
5567
|
Reference is useful only when the route into it is clear. Begin with the task
|
|
@@ -10594,6 +10609,22 @@ variables. Variant recognition is important for tabling and cycle analysis.
|
|
|
10594
10609
|
**Witness.** A constructed ground term demonstrating an existential result,
|
|
10595
10610
|
such as a path, assignment, factorization, schedule, or proof-relevant object.
|
|
10596
10611
|
|
|
10612
|
+
### Historical note: manuals become specifications
|
|
10613
|
+
|
|
10614
|
+
Early Prolog programmers learned from implementation manuals, examples, and
|
|
10615
|
+
books whose descriptions were often inseparable from one particular system. As
|
|
10616
|
+
the language spread, reference writing acquired a second task: distinguish the
|
|
10617
|
+
portable language from implementation convention. Predicate indexes, precise
|
|
10618
|
+
mode and error descriptions, and standards documents became tools for comparing
|
|
10619
|
+
systems rather than merely operating one of them.
|
|
10620
|
+
|
|
10621
|
+
ISO standardization made that distinction explicit, while conformance tests and
|
|
10622
|
+
cross-processor corpora made many disagreements executable. A mature reference
|
|
10623
|
+
therefore joins several forms of evidence: normative prose, named predicates
|
|
10624
|
+
and flags, examples, implementation boundaries, and reproducible tests. The
|
|
10625
|
+
result is not a substitute for programming practice; it is a map from a
|
|
10626
|
+
concrete question to the exact contract that governs it.
|
|
10627
|
+
|
|
10597
10628
|
# Part X — Laboratories
|
|
10598
10629
|
|
|
10599
10630
|
## 44. Twelve laboratories
|
|
@@ -10858,6 +10889,21 @@ A beautiful program is not merely short. It makes the reason for its
|
|
|
10858
10889
|
correctness, the shape of its search, and the boundary of its trust available
|
|
10859
10890
|
to the next reader.
|
|
10860
10891
|
|
|
10892
|
+
### Historical note: logic programming grows through exercises
|
|
10893
|
+
|
|
10894
|
+
Logic programming has long been taught by construction. Lists, family
|
|
10895
|
+
relations, puzzles, grammars, interpreters, search problems, and small expert
|
|
10896
|
+
systems became recurring exercises because each exposes both a logical relation
|
|
10897
|
+
and the control needed to compute with it. Texts such as *The Art of Prolog*
|
|
10898
|
+
made this dual reading central: an exercise was not finished when a clause
|
|
10899
|
+
parsed, but when its meaning, modes, and behavior could be explained.
|
|
10900
|
+
|
|
10901
|
+
Laboratory practice later absorbed regression testing, property-oriented
|
|
10902
|
+
checking, benchmark corpora, and reproducible command-line runs. These tools
|
|
10903
|
+
fit logic programming unusually well because a small change can be examined at
|
|
10904
|
+
several levels at once: answers, failures, witnesses, proofs, and search. The
|
|
10905
|
+
laboratory is where a declarative claim becomes an executable experiment.
|
|
10906
|
+
|
|
10861
10907
|
# Part XI — Review
|
|
10862
10908
|
|
|
10863
10909
|
## 45. Checkpoint notes and selected answers
|
|
@@ -10982,3 +11028,17 @@ unbounded theorem.
|
|
|
10982
11028
|
|
|
10983
11029
|
For laboratory checkpoints, leave an artifact. A useful completion is not merely a paragraph: it is a small source file, predicted output, actual output, and one sentence explaining any difference.
|
|
10984
11030
|
|
|
11031
|
+
### Historical note: review becomes explanation
|
|
11032
|
+
|
|
11033
|
+
The declarative reading of logic programs encouraged debugging methods that ask
|
|
11034
|
+
what a relation was intended to mean, not only which machine step came next. In
|
|
11035
|
+
the early 1980s, Ehud Shapiro's work on algorithmic debugging used computation
|
|
11036
|
+
trees together with a programmer's judgments about intended results to narrow a
|
|
11037
|
+
fault to the clause responsible for it. Declarative debugging developed this
|
|
11038
|
+
idea alongside, rather than instead of, ordinary tracing.
|
|
11039
|
+
|
|
11040
|
+
That tradition gives review a distinctive role in logic programming. A worked
|
|
11041
|
+
answer is useful when it can be reconstructed from the relation, the calling
|
|
11042
|
+
mode, and the evidence, and when a disagreement can be turned into a smaller
|
|
11043
|
+
question about meaning or control. Review then becomes another pass through the
|
|
11044
|
+
same discipline as programming: predict, execute, explain, and revise.
|