Introduce yourself
Introduce yourself is a pseudonatural esolang created by User:None1.
Memory Model
Introduce yourself is based on variables that can store unbounded unsigned integers.
Commands
There are these commands in Introduce yourself.
Command | Meaning |
---|---|
Hi, I am X, I am Y years old. |
Creates a variable named X with a value of Y, this command must be run exactly once for every variable. |
How old are you, X? |
Outputs the value of the variable named X, do nothing if it doesn't exist. |
How old are you in character, X? |
Outputs the value of the variable named X modulo 256 as ASCII, do nothing if it doesn't exist. |
The age of X is now a secret. |
Reads an unsigned integer from user input and store it to the variable named X, EOF returns 0, do nothing if it doesn't exist. |
The age of X is now a secret in character. |
Reads a character from user input and store its ASCII value to the variable named X, EOF returns 0, do nothing if it doesn't exist. |
X: Y years later... |
Increases the variable named X by Y (an integer). |
X: Y years ago... |
Decreases the variable named X by Y, if the result is less than zero, then ignore this command (an integer). |
Are you Y years old, X? |
If the value of X isn't Y, skip next instruction (if there is no next instruction, then terminate the program). If the next instruction is still an instruction like this, the "next instruction" of that instruction will be skipped if the value of X isn't Y. |
Pardon me, please say line X again. |
Jump to line X (the first line is line 1). If the line number doesn't exist, then terminate the program. |
Variable names can have be any character except whitespaces.
Invalid commands raise a syntax error:
Syntax error
Examples
Hello World
Hi, I am PzaV, I am 72 years old. How old are you in character, PzaV? Hi, I am DmFm, I am 101 years old. How old are you in character, DmFm? Hi, I am IlUu, I am 108 years old. How old are you in character, IlUu? Hi, I am ZSRN, I am 108 years old. How old are you in character, ZSRN? Hi, I am xL+0, I am 111 years old. How old are you in character, xL+0? Hi, I am R38C, I am 32 years old. How old are you in character, R38C? Hi, I am NJHl, I am 87 years old. How old are you in character, NJHl? Hi, I am Lukk, I am 111 years old. How old are you in character, Lukk? Hi, I am qfZl, I am 114 years old. How old are you in character, qfZl? Hi, I am sr/4, I am 108 years old. How old are you in character, sr/4? Hi, I am cmnk, I am 100 years old. How old are you in character, cmnk?
Cat Program
This program never terminates
Hi, I am a, I am 0 years old. The age of a is now a secret in character. How old are you in character, a? Pardon me, please say line 2 again.
Here is an alternative that terminates when EOF:
Hi, I am a, I am 0 years old. The age of a is now a secret in character. How old are you in character, a? Are you 0 years old, a? Pardon me, please say line 7 again. Pardon me, please say line 2 again.
Truth Machine
Hi, I am a, I am 0 years old. The age of a is now a secret. How old are you, a? Are you 1 years old, a? Pardon me, please say line 3 again.
Quine
Syntax error
Computational class
As shown in the article brainfuck, when the tape is at least 3 cells long, and the cells can store integers of any size, brainfuck is Turing complete.
As the integers in this esolang are unbounded, we can simply simulate brainfuck in this esolang.
The following is the unfinished table of translation from brainfuck.
Introduce yourself | brainfuck |
---|---|
Hi, I am p, I am 0 years old. Hi, I am a, I am 0 years old. Hi, I am b, I am 0 years old. Hi, I am c, I am 0 years old. |
(begin) |
Are you 0 years old, p? a: 1 years later... Are you 1 years old, p? b: 1 years later... Are you 2 years old, p? c: 1 years later... |
+ |
Are you 0 years old, p? a: 1 years ago... Are you 1 years old, p? b: 1 years ago... Are you 2 years old, p? c: 1 years ago... |
- |
Are you 0 years old, p? The age of a is now a secret in character. Are you 1 years old, p? The age of b is now a secret in character. Are you 2 years old, p? The age of c is now a secret in character. |
, |
Are you 0 years old, p? How old are you in character, a? Are you 1 years old, p? How old are you in character, b? Are you 2 years old, p? How old are you in character, c? |
. |
p: 1 years later... |
> |
p: 1 years ago... |
< |
Are you 0 years old, p? Are you 0 years old, a? Pardon me, please say line K again. Are you 1 years old, p? Are you 0 years old, b? Pardon me, please say line K again. Are you 2 years old, p? Are you 0 years old, c? Pardon me, please say line K again. |
[ |
Are you 0 years old, p? Are you 0 years old, a? Pardon me, please say line N again. Are you 1 years old, p? Are you 0 years old, b? Pardon me, please say line N again. Are you 2 years old, p? Are you 0 years old, c? Pardon me, please say line N again. Pardon me, please say line K again. |
] |
This proves that Introduce yourself is Turing-complete.
P.S.: Replace N with the line number after the translated commands of the [
or ]
command, and K with the line number of the first line of the translated commands of the matching ]
or [
command.