# TypeInt

Designed by | User:GUAqwq |
---|---|

Appeared in | 2023 |

Computational class | Maybe Turing complete (change after proving) |

Reference implementation | Unimplemented |

File extension(s) | `.ts_` |

**TypeInt** is a esolang which is created by User:GUAqwq. The program runs on an unbounded integer type array which is unbounded. It came out while User:GUAqwq was proving the turing completeness of TypeString:

"If there's only one character for this esolang, will it still Turing Complete?"

## Overview

We call `<some '*'s><int>`

`value`

or `ptr`

because they acts as a multilevel pointer.

Operation types:

ptr- : set the value which `ptr`

points to `0`

ptr+ : increase the value which `ptr`

points

value; : dynamic label, if there's the same value for more than 2 labels, first one works.

v0 v1 v2? : if `v0 == v1`

jump to label`v2`

## Examples

### Decrease

Input: `*0`

==`x`

`(x>=1)`

Output: `*1`

==`x-1`

Code:

*3+ *4+ *4+ *2+ *3; *0 *2 *4? *0+ *1+ *2+ *2+ *0 *0 *3? *4; *0- *2- *3- *4-

This code has used all the statements, but multilevel pointer syntax hasn't been used.

The code is divided into 4 parts by the empty lines:

The 1st part sets `1`

info `*3`

, `2`

into `*4`

. These 2 values will be used for labels.

The 2nd part increases `*2`

. Thus, during the copy, the target `*1`

will get `1`

less than the source `*0`

The 3rd part copies `*0`

to `*1`

, using such method:

while(*2 != *0){ *0+=1; *2+=2; }

The 4th part clears the values in the memory except the anwser which is in `*1`