# Pointy

From Esolang

**Pointy** is a language by Ihope127. The basic datatype is the pointer.

## Instructions[edit]

The instructions:

LBL foo: not really an instruction, but marks a destination for a DEC jump. CPY x y: stores the value x in memory location y. INC x: increments the value at memory location x. DEC x foo: tries to decrement the value at memory location x. If x already held 0, jumps to foo. OUT x: outputs x. INP x: inputs a value into the memory location x.

Pointers can be dereferenced using the * operator: *x is the value at location x. Since there is a memory location 0 (there is no null pointer), * never fails to produce a result.

## Examples[edit]

Hello, World!

CPY 108 1 CPY 111 2 OUT 72 OUT 101 OUT *1 OUT *1 OUT *2 OUT 44 OUT 32 OUT 119 OUT *2 OUT 114 OUT *1 OUT 100 OUT 33

Cat program

LBL start INP 0 OUT *0 DEC 1 start ; the value at 1 will be 0, so this jumps to start

## Computational class[edit]

Pointy is Turing-complete because it can simulate a Minsky machine. It can also emulate Brainfuck with a tape that extends infinitely only to the right, as shown in the table below.

Let x store the current cell number, y be an unused value set to 0, and z be free for use.

Brainfuck operation(s) | Pointy operation(s) |
---|---|

> |
INC x |

< |
DEC x |

+ |
INC *x |

- |
DEC *x foo DEC y bar LBL foo CPY 255 *x LBL bar |

, |
INP *x |

. |
CPY *x z OUT *z |

[ |
DEC x foo LBL bar INC x |

] |
DEC x foo DEC y bar LBL foo |