Amino

From Esolang
Jump to navigation Jump to search

Amino is a stack-based esoteric programming language written by User:Azure413 in 2026. It is designed to be similar to the creation of proteins from DNA.

Language overview

Code in Amino is made entirely from A, T, C, and G, the same as DNA. The code is converted to instructions by transcription and translation. In transcription, the code is converted from ATCG to UAGC, by A->U, T->A, G->C, and C->G. The transcribed code is then put through translation, which converts each group of 3 bases into an amino acid. Amino acids use the same bases as they do in real life, and they function as instructions.

Instructions

Acid Description Codon(s)
Phe Pushes a number to the stack, the number is a binary number with A as 0 and G as 1 (before transcription, T=0 and C=1), the number ends at the next Phe acid and must have a length that is a multiple of 3, including leading zeros.
Ile Takes a number as input and pushes it.
Asp Takes an ASCII character as input and pushes its ASCII value.
Val Pops the stack and outputs it.
Asn Pops the stack and outputs the corresponding character in ASCII.
Pro Pops and discards the stack.
Ala Pops the top 2 values a and b, then pushes a+b.
Ser Pops the top 2 values a and b, then pushes b-a.
Thr Pops the top 2 values a and b, then pushes a*b.
His Pops the top 2 values a and b, then pushes b/a.
Tyr Pops the top value, if it's 0 then push 1, otherwise push 0.
Gln Duplicates the top value of the stack.
Leu If top of stack is 0, skip to the corresponding Lys.
Lys If top of stack is 0, go back to the corresponding Leu.
Gly Pops the top value, sends the instruction pointer to that point in the code.

Example programs

Hello, world!

TACAAATTCTTCTTTAAGTTAAAGTTCCTTCTCAAGTTAAAGTTCCTCCTTAAATTAAAATTCCTCCTTAAGTTGAAGTTCCTCCCCAAATTAAAACTCCTTAAATTGAAACTTTTTAAATTAAAATTCCCTCCCAAGTTAAAGTTCCTCCCCAAATTAAAATTCCCTTCTAAGTTAAAGTTCCTCCTTAAATTAAAGTTCCTTCTTAAGTTGAAACTTTTCAAGTTAACT

Truth machine

TACTATAACGTCCAGTTCCAGATC

Cat program

TACAACTAGCAATTTATC

Calculator

Takes 2 numbers as input, then the operation. For operation, do + to add, - to subtract, * to multiply, and / to divide.

TACTAATAGCTAGTCAAACTCTCCAAGAGTATGGATAAGCCTCTTAAGCCATTTGGTGTCAAGCTCCTCAAGAGCATGGATAAGCCCTCCAAACCTTTTGGTGTCAAACTCTCTAAATCAATGGAAAAATTCTTTTCTAAACCATTCGGGGTTAAGCTCCCCAAGAGGATGGATAAATTCTTCTTCAAACCTTTCGGTAAATTCTTCCTCAAGCCGGGCGGTCGGCATAAGTTCTTCCTCAAGCCTGGAGGTAGGCAAAAATTCTTCCTCAAGCCGGGTGGGTGTCACAAATTCTTCCTCAAGCCGGGCGGGGTGCAGACT