Senn

From Esolang
Jump to navigation Jump to search
Senn
Paradigm(s) Stack-based
Designed by User:Las-r
Appeared in 2026
Computational class Turing complete (Speculated)
Major implementations GitHub
Influenced by Enn
File extension(s) .snn

Senn (Stack-based Executable NAND Network) is a stack-based variant of the esolang Enn, created by Nayif Ehan in 2026.

Senn replaces named variables with a tape-based memory system controlled by three distinct pointers.

How Senn Works

Senn uses three primary pointers to interact with a tape of cells (bits):

  • , (Comma): The primary data pointer.
  • . (Dot): The secondary data pointer.
  • ? (Query): The tertiary data pointer.

Only NAND logic is able to be used on the data within the cell the pointers refer to.

IMPORTANT NOTE: Every program loops by default. To end a program, you must forcequit it, or use the --once argument.

Syntax

Basic Guidelines

  • Line breaks, indentation, and trailing spaces do not matter.
  • Every instruction should be ended with ;.
  • Comments are padded with /.

Commands

Moving pointers

Pointers are moved using + and -.

,+++;      / Moves `,` 3 cells forwards /
.----;     / Moves `.` 4 cells backwards /
?++----;   / Moves `?` 2 cells backwards (2 - 4) /

NAND Operation

Senn performs NAND using a three-character instruction consisting of the pointers.

This sets the data at , to the data at . NAND ?.

,.?;

This sets the data at ? to, essentially, NOT ..

?..;

Toggle a cell

A single pointer symbol toggles the bit at that pointer's current location.

This toggles the bit at ,.

,;

Output a cell

  • Bit Output: >p; (where p is a pointer symbol) prints the bit at that pointer.
  • Newline: >; prints a newline.
  • ASCII Output: >>p; prints the character represented by the 8 bits starting at pointer p.

The following outputs the data at ? and the following 7 bits in ASCII.

>>?;

Input a value

The `<` command checks if the spacebar is pressed. If true, it sets the bit at the , pointer to 1, otherwise 0.

<;

Computational Class

The true computation class of Senn is unproven, but it is speculated to be Turing-complete.

This is because the only thing limiting its predecessor, Enn, was it's bounded memory. Enn was incapable of creating or removing variables during runtime, only at initialization. Senn circumvents this by using an infinite stack tape, allowing it as much memory as it requires.

However, as said previously, there remains no formal proof of Senn's Turing-completeness.