Skip to content

Commit

Permalink
ob.txt 0.1.6 smoothing and elaboration
Browse files Browse the repository at this point in the history
Resolve issue #16 typo and issue #20 enclosure explanation, thanks to review by @band.  Further smoothing of the text at the same time.
  • Loading branch information
orcmid committed May 10, 2019
1 parent 564e998 commit cdf92eb
Showing 1 changed file with 45 additions and 28 deletions.
73 changes: 45 additions & 28 deletions oMiser/ob.txt
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
ob.txt 0.1.5 UTF-8 dh:2019-04-30
ob.txt 0.1.6 UTF-8 dh:2019-05-10

The Miser Project Code
======================

<https://github.com/orcmid/miser/blob/master/oMiser/ob.txt>

‹ob› MATHEMATICAL STRUCTURE, DATA REPRESENTATION, AND EXPRESSIONS
----------------------------------------------------------------
-----------------------------------------------------------------

Formulation of the mathematical structure, ‹ob›, illustrates the bridge
between mathematical logic and theoretical limitations of all present-
day computation systems. The ‹ob›-based computation model, although
low-level, is as powerful, with respect to those limits, as any other
model. A central purpose of the Miser Project is demonstration of how
that and then to draw the connection with an operational realization.
that is the case, drawing the connection with an operational realization.

Under the Miser ‹ob› computational model, obs serve interchangeably as
data and as scripts of procedures -- computational methods -- operating on
Expand All @@ -31,18 +31,18 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30
<https://github.com/orcmid/miser/blob/master/oMiser/obtheory.txt>.

* There are two selector functions, ob.a(z) and ob.b(z) that given
any ob and determine an ob as their result.
any ob determine an ob as their result.

* There is an arbitrary supply of distinct individuals, including
ob.NIL. For any individual, z, ob.a(z) = ob.b(z) = z.

* For z any ob, the function ob.e(z) determines the ob such that
ob.a(ob.e(z)) = z and ob.b(ob.e(z)) = ob.e(z). We speak of ob.e(z)
as encapsulation of z.
as the enclosure of z.

* The individuals and encapsulations together are identified as
singletons because they have in common that ob.b(z) = z. There
are oMiser idioms that exploit this.
* The individuals and enclosure together are identified as singletons
because they have in common that ob.b(z) = z. There are oMiser idioms
that exploit this.

* For any obs x and y, the function ob.c(x, y) determines the pair
such that ob.a(ob.c(x,y)) = x and ob.b(ob.c(x,y)) = y and neither
Expand All @@ -52,11 +52,12 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30
determine when obs are the same or different based on structure alone,
- ob.is-individual(z) true whenever ob.a(z) = z
- ob.is-singleton(z) true whenever ob.b(z) = z
- ob.is-pair(z) whenever ob.is-singleton(z) is false
- ob.is-enclosure(z) whenever ob.is-singleton(z) is true
- ob.is-pair(z) true whenever ob.is-singleton(z) is false
- ob.is-enclosure(z) true whenever ob.is-singleton(z) is true
and ob.is-individual(z) is false.

* The enrichment of obs for particular applications is solely by
exploitation of these structural characteristics of obs along with
introduction of distinct individuals.

2. DATA REPRESENTATION TEXT NOTATION
Expand All @@ -78,7 +79,7 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30
Having a finite canonical form for every ob provides a basis for
computational manipulation of obs, a kind of ob arithmetic. We can
always answer the question, "which ob is this?" if its canonical
form can be obtained.
form can be determined.

There is similarity with ordinary arithmetic. Consider that each decimal
numeral written out without any leading zeroes (except for "0" alone)
Expand All @@ -102,7 +103,7 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30
significed at keyboards by using the grave accent, U+0060 `, although
the preferred substitute is the apostrophe, U+0027. Keep in mind
that this is an expression operator and not the same as syntactical
"quotation."
"quotation" (although there is a similarity of function in scripts).

* ob.c(x, y) is expressed x :: y

Expand Down Expand Up @@ -134,14 +135,14 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30

All of the individual terms in that expression are lindies.

2.2 Publication Notation
2.3 Publication Notation

In formats having greater typographical flexibility than plaintest, there
can be useful embellishments. Primitives can be presented in boldface
and even lower-case, with the leading "." omitted, since the special
typography reflects their "reserved" and distinct status as primitives.

2.3 Additional Forms
2.4 Additional Forms

The notation can be "pretty-printed", using indentation, to facilitate
comprehension. The addition of comments, blank lines, indentations, and
Expand Down Expand Up @@ -209,20 +210,24 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30

Without getting into the details, here is a case where a procedure is used
to combine obs x and y, also as scripts, into a procedure that involves
even further applications to achieve the intended result.
even further applications to achieve the intended result. Powerful
systematic treatment of these applicative operations is expanded on at
<https://github.com/orcmid/miser/blob/master/oMiser/combinators.txt>.

Many obs are useful in composing scripts by combining others in this
manner. Using procedures to compute other scripts from given ones and
data demonstrates a critical characteristic of stored-program computation.
manner. Using procedures to compute other scripts from given ones
demonstrates a critical characteristic of stored-program computation.
This capability is at the heart of how software is used to build higher-
level tools and their programming languages, although the mechanisms of
general-purpose procedures do not "rewrite" scripts to make other scripts,
having alternative mechanisms at hand.
there being alternative mechanisms at hand in well-designed general-
purpose computers.

4.1 Applicative-Expression Style

In oFrugalese, the evaluation (4) can be expressed using applicative-
expression style,
In oFrugalese, the evaluation (4) can be expressed using a defined
applicative-expression style, similar to mathematical and programming-
language functional notation.

cS(x,y) z = x(z) y(z) (5)

Expand All @@ -237,7 +242,7 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30
of the result of one ob-yielding application, here x(z), to the result of
another ob-yielding expression, such as y(z), as in (5). All of the
examples in (5-6) are formulas for the same applicative operations, namely
those that deliver (4).
those that deliver the same result as (4) with cS eliminated.

4.2 Applicative Expressions in oFrugal

Expand All @@ -253,7 +258,7 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30

There is no applicative operation required in the evaluation of (2) to
arrive at the ob (1). But the leading terms in (7), by their spacing,
constitute applicative-operation expression, leading to interpretation as
signify applicative operation, leading to interpretation as

obap.ap(.A, obap.ap(.B, obap.ap(.B, x)))
= ob.a(ob.b(ob.b(x))),
Expand Down Expand Up @@ -293,8 +298,8 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30
all involves just obs.

Given some means to express manipulation of strings of character codes
and of input-output streams, we could define the oFrugal REPL itself
in Frugalese.
and of input-output streams, we could define oFrugal processing itself in
Frugalese.

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

Expand All @@ -314,16 +319,28 @@ ob.txt 0.1.5 UTF-8 dh:2019-04-30

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

ATTRIBUTION

Hamilton, Dennis E. ‹ob› Mathematical Structure, Data Representation, and Expressions. Miser Theory Conception text file ob.txt version 0.1.6 dated
2019-05-10, available on the Internet as a version of
<https://github.com/orcmid/miser/blob/master/oMiser/ob.txt>

TODO

* Add an attribution statement
* Continue review.

* Add Notes and Reference section.

* Also add Content table.

* Explain more about traces and the ^cS application in the final example.

* Get straight on the elimination of acute accent in 0.0.6 and however this
works, in ob-exp. It is the case that we will use apostrophe over back-
tick if it is necessary to make a plaintext substitution for reverse-prime

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0.1.6 2019-05-10-07:49 Correct issue #16 typo spotted by William L. Anderson.
Be more careful about enclosure per issue #20 by William L. Anderson.
Provide further editorial improvements throughout the text.
0.1.5 2019-04-30-13:06 Smooth a few places and make adjustments in early
passages thanks to comments from colleague William L. Anderson.
0.1.4 2019-04-29-12:07 Smooth the text flow and touch up in places. Add TODO
Expand Down

0 comments on commit cdf92eb

Please sign in to comment.