Alphabetti spaghetti

From Esolang
Jump to navigation Jump to search

Alphabetti spaghetti is an esoteric programming language invented in 2015 by an anonymous user. Programs in alphabetti spaghetti consist of a string of alphabetic characters (letters), hence the name. However, alphabetti spaghetti can only input and output integers. If you wish to output characters, assign each character an integer and transcribe the input and output. Alphabetti spaghetti consists of a pointer on a two dimensional grid of cells. the pointer starts at (0,0) and each cell is initially 0.

Syntax

  • a or b: move pointer one space right
  • c or d: move pointer one space down
  • e or f: move pointer one space left
  • g or h: move pointer one space up
  • i or j: increment value at pointer
  • k or l: decrement value at pointer
  • m or n: accept input from user. Store input in current cell.
  • o or p: output value of current cell.
  • q or r: if cell value equals 0, move to instruction immediately after the next j. Otherwise, continue.
  • s or t: if cell value does not equal 0, move to instruction immediately after previous i. Otherwise, continue.
  • u or v: multiply value of cell by 10
  • w or x: divide value of cell by 10. Discard digits that are after the decimal point.
  • y or z: quine function, will output the source code. This is the only place where alphabetti spaghetti will output letters.

Alphabetti spaghetti is not case-sensitive. A letter will perform the same function if it is lower case or capitalized.

Interpreter

An interpreter for Alphabetti spaghetti has been written in C++. However, it is untested. If after testing it is shown to work, it will be uploaded to this site. Another interpreter has been uploaded on Github (from the Wayback Machine; retrieved on 12 June 2018) that works and follows the syntax except for adding a # token that exits the program.