Skive

From Esolang
Jump to navigation Jump to search

Template:Infobox programming language

Skive is a 2D memory grid esolang because Brainfuck was “too flat.” It uses an infinite 2D grid of 8-bit cells, labels, teleportation, snapshots, vectors, and macros that can spiral out of control.

Core Ideas

  • Infinite 2D memory grid of unsigned 8-bit cells (0–255, wraps around).
  • Pointer starts at (0,0), you move it around and mess with cells.
  • Entire rows and columns can be incremented.
  • Labels let you teleport anywhere (absolute or relative).
  • Macros can recursively expand (up to 50 passes before implosion).
  • Snapshots and vectors exist because… why not.

Commands

Pointer & cell:

>   move right
<   move left
^   move up
v   move down
+   increment current cell
-   decrement current cell
|   increment entire column
_   increment entire row
~   set current cell to random 0-255

Loops:

[   while current cell != 0
]   end loop

Input / Output:

.         print current cell as ASCII
?(?)      input into current cell
??        dump input buffer into cells (moves pointer each byte)

Labels & Teleportation:

label{name}    mark current cell with a label
\tp{name}      teleport to label
\tp(x,y)       teleport relative by (x,y)

Extended commands:

\clone{name}        copy current cell into label
\swap{name}         swap value with label
\save{name}         snapshot the entire tape
\restore{name}      restore snapshot
\fill{src,n1,n2}    fill rectangle with value from src
\math{name,op,val}  math on a labeled cell (+,-,*,/)
\mod{name,val}      apply modulus
\vset{name}         create a vector
\pb(vec){cell}      push cell's value into a vector

Macros:

(name)={body}   define macro
expands wherever <name> appears  
(max 50 passes or the interpreter screams)

Comments:

```like this```

Built-in guide:

!guide!   prints a full cheat-sheet

Example

Print `HI` and cry:

++++++++++
label{H}
.
++
label{I}
.

Interpreter

A reference C++ interpreter exists:

Run with:

./skive program.txt

External Resources