Every now and then, I come across an example of a tiny programming language. The first one I encountered was the Life cellular automata language in the October 1970 issue of Scientific American Magazine. It fascinated me and was a key moment in my career path.
A few days ago, I encountered a tiny language called Zot. Zot is a variant of the Jot and Iota languages. See en.wikipedia.org/wiki/Iota_and_Jot.
The best way to grasp what Zot is, is to look at a concrete example. I found one in an old archived Web page at web.archive.org/web/20200414141014/http://www.nyu.edu/projects/barker/Iota/zot.html. I slightly modified the example from old JavaScript to modern node.js JavaScript. JavaScript is used because it can work with functions as data.
The demo output is:
Demo of the zot minimal language Reverse a two-char 0-1 input zot program code: 11101010100110101001101010100110101001010100111010101001 10101001101010100111010101001101010010101010011101010100 11010100110101010010010101001110101010011010100101010010 10100 input code: 01 output: 1,0
The Zot language has only two symbols, 0 and 1. A Zot program consists of a long string of 0s and 1s that are the program code part, followed by a string of 0s and 1s that are appended to the program code and act as the input.
Fascinating stuff. But. Unfortunately, life is just too short (regular life, not the cellular automata Life) and I had to stop my exploration. In my version of Heaven, I would have unlimited time to investigate interesting ideas.

The Atom is one of my favorite old comic book series. The first appearance of the minimally-sized character was in October 1961. Dr. Ray Palmer, is a physicist and professor and develops a shrinking ray from white dwarf star matter. The original incarnation of the character only lasted 45 issues. Readers wanted less science and bigger, stronger heroes.
The first three appearances of The Atom were in the “Showcase Presents” anthology title, in October 1961, December 1961, and February 1962. The Atom got his own title in July 1962. Notice that most comic books changed prices from 10 cents to 12 cents in January 1962 — that was a big deal back then. The next price increase was to 15 cents in 1969 — the end of the Silver Age of comics.
Demo code. Replace “gte” (greater than or equal) with Boolean operator symbol. My editor chokes on symbols.
// zot_demo.py
// web.archive.org/web/20200414141014/http://www. +
// nyu.edu/projects/barker/Iota/zot.html
function I(x) { return x; }
function K(x) {
function K1(y) {
return x;
}
return K1; // a function
}
function S(x) {
function S1(y) {
function S2(z) {
return ((x (z))(y (z)));
}
return S2;
}
return S1;
}
function zero(c) {
function basis(f) {
return ((f(S))(K));
}
return (c(basis));
}
function one(c) {
function bigleft (L) {
function left (l) {
function bigright (R) {
function right (r) {
return (c(l(r)));
}
return (R(right));
}
return bigright;
}
return (L(left));
}
return bigleft;
}
function trivial(x) {
return x(I);
}
function zot(string) {
function process(position, value) {
if (position "gte" string.length) { return value }
if (string.charAt(position) == "0") {
return process(position + 1, value(zero)); // recurse
}
return process(position + 1, value(one));
}
return process(0, trivial);
}
function interrogate(f) {
return ((((f(I))(I))(I))(K));
}
let outList = [];
function pr(ch) {
outList.push(((interrogate(ch))("0"))("1"));
return pr;
}
function run(str) {
outList = [];
((zot(str))(K(K(K(K(K(K(I))))))))(pr);
return outList.toString();
}
console.log("\nDemo of the zot minimal language ");
console.log("\nReverse a two-char 0-1 input ");
// reverses exactly two chars
programCode =
"1110101010011010100110101010011010100101" +
"0100111010101001101010011010101001110101" +
"0100110101001010101001110101010011010100" +
"1101010100100101010011101010100110101001" +
"0101001010100";
console.log("\nzot program code: ");
console.log(programCode);
inptCode = "01";
zotProgram = programCode + inptCode;
console.log("\ninput code: ");
console.log(inptCode);
oupt = run(zotProgram);
console.log("\noutput: ");
console.log(oupt); // "10"

.NET Test Automation Recipes
Software Testing
SciPy Programming Succinctly
Keras Succinctly
R Programming
2026 Visual Studio Live
2025 Summer MLADS Conference
2025 DevIntersection Conference
2025 Machine Learning Week
2025 Ai4 Conference
2025 G2E Conference
2025 iSC West Conference
Hope to hear from you in this version. 🙂
Here is my latest work, AI Search or Optimization Descent:
https://x.com/KleppeThorsten/status/1833506204330385684