We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.

Miny

From Esolang
Jump to navigation Jump to search

Miny is an esolang based on 1-register Minsky machine developed by User:ChuckEsoteric08.

Specification

The language has a single register, with a value 1 at the start of a program and two instructions

  • *n - multiply register by an integer n. Multiplication by 0 is Unidentified behaviour
  • (n:abc/xyz) - try to divide register by an integer n. If it is divisible then divide and execute code abc, else execute xyz

Program is in an infinite loop.

Computational class

The language is Turing complete since it is possible to trivially translate various kinds of counter machines into it. The most efficient one is described here:

  • Each counter of a Minsky machine as well as well as each instruction of Minsky machine are given a unique prime number and all are represented inside the register using Gödel numbering
  • The code looks like this (inst1, inst2 and ect. are prime numbers that are given to instructions 1, 2 and ect.):
(inst1:.../(inst2:.../(inst3:.../...))

With last instruction n being (instn:.../*inst1)

  • Increment instruction which jumps to instruction y after incrementing, instx INC regx insty, is (instx:*regx*insty/...)
  • Decrement instruction which jumps to instruction s if succesful and f if failed, instx DEC regx insts instf, is (instx:(regx:*insts/*instf)/...)
  • Halting is simple, becoming (instx:*instx/...)

See also