The λDNA and LAST programming languages

Screenshot of the AMY1 gene, from Wikipedia, adapted

Here I present two extremely minimal programming languages I have created, which are both minimal versions of Alonzo Church’s lambda calculus, inspired by John Tromp’s Binary Lambda Calculus (BLC).

λDNA

λDNA is an evolution of the LAST programming language.

λDNA is modeled after biological DNA. It is based on lambda calculus and is possibly the most minimal complete programming language. λDNA can run the shortest-possible self-interpreter of lambda calculus which can be in principle implemented in a binary variant of λDNA (to be implemented?) in 4 bits.

Full description and implementation of λDNA is at codeberg.org/xtao-org/ldna.

See also these blog posts:

LAST

LAST is an extremely minimal programming language which uses only 4 symbols (conventionally L, A, S, and T) to encode any algorithm. In that LAST is analogous with DNA, the language of biology, which uses only 4 symbols (conventionally C, G, A, and T) to encode any organism.

LAST grew out of a desire to understand the fundamentals of computing, as discovered and explained by great computer scientists. The language presents another perspective on their work, adding something to build upon further and hopefully helping others gain their own understanding.

LAST is a version of Alonzo Church’s lambda calculus, inspired by Justine Tunney’s SectorLambda implementation of John Tromp’s Binary Lambda Calculus (BLC).

To learn more, see the Introduction to the LAST programming language and Revelation: Lambda Calculus Reduced To Four Primitive Operations.

Simple playground

Enter LAST code or select an example and click one of the buttons below*.

Example:

All characters except L, A, S, and T will be ignored.

run
run and render as LAST-B (binary)
S-optimize
S-deoptimize
 
Output will appear here.

* Note: input goes immediately after the program and is not interactive. For a more advanced playground with interactive input, see nuklĕus below.

Advanced playground

nuklĕus is a minimal web-based IDE for LAST with a debugger, where you can compile LAST programs to a very closely-related virtual machine bytecode which can then be executed step-by-step. The debugger visualizes the state of memory at each step and supports interactive I/O.

To open nuklĕus, click on the screenshot below.

a screenshot from nuklĕus

See also

Support TAO

If you like, you can support my work with a small donation.

Donate directly via Stripe   or   Buy Me a Coffee at ko-fi.com   Postaw mi kawę na buycoffee.to

Thank you!

Darius J Chuck