The Miser Project on GitHub

miser Work-in-Progress 0.1.14
  The Miser Project logo  

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 reality. The Miser computational model is achieved with introduction of a universal computational function – an abstraction still.

The challenge becomes finding a dependable alignment between theory and practice, contending with a bridge that cannot be crossed. The dependable achievement of engineered implementations of theoretical wonders is a marvel of our time. Look carefully.

1.3 Computational View

The diagram is also suggestive of a possible implementation 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 a computer implementations will become more elaborate than the simple structure suggested in the diagram. The diagram remains descriptive as a visualization.

In this endeavor, confirming that conditions established in theory are honored successfully in contingent reality demands thorough empirical inspection and demonstration.

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.

Achievement 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 on the platform.

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.

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

(TBD: some ideas, including Rosenbloom. A specific bibliography will be used.)

oMiser represents procedures and data in the same data format, demonstrating the essence of the stored-program concept. Inspiration is from formulation of LISP, although Miser is not LISP.

Applicative operation is inspired by work of Peter Landin, Christopher Strachey, and other ideas about functional programming connected to combinatory logic and the λ-calculus.

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. The operational “system” layer, oFrugal, provides storage and utility functions. The oMiser layer provides a computational model of the ‹ob› mathematical structure.

5. Available Materials

(TBD: various resources and links to them, including the bibliography)

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.