Church Machine

Church Machine

CR0-CR15 -- 128-bit Context Registers (4 x 32-bit words)
CR Detail
DR0-DR15 -- 32-bit Values (DR0 = zero)
Gate Log — mLoad / mSave from last Step
Machine Architecture
Design
Build
Install
Namespace Table -- Golden Token Entries
Abstraction Catalog -- 9 Layers, 44 Abstractions
Select an abstraction
Click any abstraction on the left to see its methods, permissions, and how it fits into the CR6/CR7 canonical form.

In 1843, Ada Lovelace wrote the first computer program — Note G, an algorithm for computing Bernoulli numbers. It was not just code. It was the first first-class program: it passed functions as arguments to other functions, not just values.

This is the vital distinction. Basic machine code (Turing) moves numbers between registers — ADD R0, R1, R2 adds two values, nothing more. CLOOMC is different. In CLOOMC, a variable can hold a function, pass it to another function, and return a function as a result. let double = \x -> x * 2 creates a function. let apply = \f x -> f(x) passes that function as an argument. Ada did this in 1843 — Alonzo Church formalised it in 1936 as the lambda calculus.

Type let x = 2 + 3 and you are writing what Ada wrote. To see her original algorithm as Church Machine code, click Code and select the Bernoulli example.

λ>
History
Instruction Set -- 20 Instructions
Church Domain (10)
Turing Domain (10 + shared RETURN)
Select an instruction
Click any instruction on the left to see its format, encoding, permissions, flags, and usage examples.
The Church Machine
Figures
Select a document or figure
Click any document on the left to view it, or click a figure to see the diagram.