miser

The Miser Project on GitHub

orcmid.github.io>
miser>




index.html>
0.3.11 2024-11-28T17:06Z

Computation Theory Made Demonstrable

The Miser Project computational model has two important qualities:

If not already, become comfortable with theoretical approaches. Embrace a different kind of math, one based on symbolic logic. Tolerate the degree of rigor; it is informally formal and doesn’t have to be swallowed whole.

1. Taking a Look

1.1 Abstraction

The diagram depicts a fundamental entity of the Miser Project model of computation: a member of the abstract structure, ‹ob›.

1.2 Theory

The Miser Project is very much about computational interpretation of abstract entities, with mathematical-logic theory as guidance toward dependable computational interpretations. The importance of logic to computer sciences is demonstrated.

Ob diagrams are props in the same manner as rulers, compasses and pencils on paper are useful in the understanding of Euclidean Geometry and numerals and arithmetic are helpful in the understanding of algebra (or vice versa). In our time, computer programs can serve similar purposes, so long as the programs are not confused with the abstractions.

Theoretically, obs are entirely abstract mathematical entities. In this sense, obs arise only in language and there is no direct concrete existence, no existence in nature. The Miser computational model is established with definition of a universal computational function – a mathematical entity still.

The challenge becomes finding a dependable alignment between the computational model as a theoretical conception and practical operation of a computing mechanism, demonstrationg an empirical bridge that cannot be crossed with mathematics and logic alone. Observe carefully how that is accomplished in the Miser Project.

Such dependable achievement of engineered manifestations of theoretical wonders is a marvel of our time.

1.3 Computational View

The diagram is also suggestive of a possible computer representation of the ‹ob› computational model.

For practical computations, a greater variety of data forms is desirable. In the case of ‹ob› alone, that convenience is deferred. Focus is on how the stored-program model and conventional computers afford elevation of abstraction already.

Management of computer implementations will become more elaborate than the simple structure suggested in the diagram. The diagram remains descriptive as a visualization.

2. The Project

The Miser Project provides operational demonstration of computation-theoretic aspects of software. Emphasis is on the stored-program principle and the manner in which computational representation of “higher-order” structures and types of entities emerge from the ‹ob› foundation, similarly with today’s digital computers.

Development of the Miser Project is the career-capstone project of the author. Miser is the outgrowth of a 60-year inquiry into applicative-programming languages and their theoretical foundations. The operational program is intended for the insights it provides and the fundamentals it demonstrates rather than practical application.

3. The Software

The production/reference oMiser run-time is intended for use by other software. It has portable implementations that operate on general-purpose computer platforms as a library to other programs.

The interplay of implementation and theoretical foundations is accomplished in layers.

oMiser run-time is purely algorithmic/procedural in nature. It supports expression of a rudimentary data structure and algorithmic procedures on that structure. The expression of algorithms is via an applicative-function interpretation of data taken as scripts. In software-engineering terms, this is the model side of an interactive computer application.

The Application Programming Interface (API) serves to ensure a computational manifestation of ‹ob›, its navigation and universal functions.

Hosting oFrugal/oMiser.

The accompanying oFrugal software embeds an oMiser run-time and delivers access to oMiser via the host-platform user interface. oFrugal provides for input-output and carrying out of oMiser computations in accordance with direct input and/or previously-stored scripts. The commanding of oFrugal operation is known as a REPL (read-evaluate-print-loop) arrangement. It is appropriate to regard oFrugal as an ‹ob› calculator.

oFrugal provides expression of data and results in a visible and persistent form, known as Frugalese. oFrugal reference formats are usable in portable interchange of programs and data.

4. Background

oMiser represents procedures and data in the same data format, demonstrating the essence and power of the stored-program concept.

The notions of individual, enclosure, singleton, and pair have their inspiration in the nested-array work of [More1979] and the foundation structure of LISP [McCarthy1960].

The importance of enclosure as a structural feature of obs was observed in an incompleteness regarding nested strings in [Strachey1965]. Ob enclosures in obs are akin to representations of strings that can nest arbitrary strings as individual beads, a limited feature of ALGOL 60 developed further by Doug Ross and colleagues in the AED system [Ross1967].

Enclosures are important in the treatment of obs as scripts and in shifting between obs as data to scripts and obs as scripts themselves in the computational model.

The computational model founded on ‹ob› for oMiser is a fully-applicative scheme inspired through my association with Peter Landin and William H. Burge in the mid-1960s, with operation now via a list-processing abstraction. The mechanism of evaluation is based on that for LISP, although Miser is not LISP. oFrugal and Frugalese have inspiration in [Landin1966], [Burge1975], and some of SML [Paulson1996].

oMiser lacks input-output and any kind of filing system for reusable artifacts, whether data or applicative-expression scripts. In this respect, there are similarities to the formulation of Functional Programming by John Backus [Backus1978]: The operational “system” layer, oFrugal, provides storage and utility operations. The oMiser layer provides a computational manifestation of the ‹ob› mathematical structure, including its universal-computation function via computational procedure.

5. Available Materials

The project is narrated with the software-development managed on GitHub repository orcmid/miser. Miser Project on GitHub content is authored at the docs folder of the repository.

Important authoritative materials are in text files that can be preserved and employed without requiring a browser or access to the GitHub repository. These materials are often created first; they are always available for preview from these web pages. Early review and discussion of preview topics is invited.

The web material is organized in topical sections:

Section General Topic
ob ‹ob› Mathematical Structure (preview)
obap ‹ob› Universal Computation Function (preview)
obreps Interpretations in ‹ob› (preview)
   
oFrugal oFrugal REPL Principles of Operation (preview)
oMiser oMiser Conception, Principles, and Engineering (preview)
   
lambda λ Applicative-Procedure Abstraction
obapx Extensions to the ‹ob› Universal Computation Function
   
docs.txt Text Synopsis and Job Jar for orcmid.github.io/miser
miser.txt Miser Project on GitHub (shadow)
construction Miser Project Web Construction Materials
   
Security Security Policy

6. Development

6.1 Principles

6.2 Future Prospects

The refinement of oMiser and oFrugal mockups toward conventional-computer production code is a kind of bootstrapping spiral. Once there is a stable oFrugal REPL, more-ambitious extensions are aspired to. There are no concrete provisions at this time.

It may become necessary to take one more run at computational monads and embrace some Category Theory although some Computational Logic equivalent may need to tag along with that.


I invite discussion about Miser Project topics in the Discussion section. Improvements and removal of defects in this particular documentation can be reported and addressed in the Issues section. There are also relevant projects from time to time.

Hard Hat Area You are navigating the Miser Project on Github

created 2019-11-20 by orcmid