Skip to main content

An esoteric language that uses drawings of arrows.

Project description

arrows-esolang

Arrows is meant to be a graphic, stack-based esoteric language. This package includes two command line utilities, arrows, the arrows interpreter, and arrowsc, the arrows compiler. For a more detailed description of the language, see my blog post about it.

Build Status PyPI version

Arrows has the following properties:

  1. Every operation and value in the language is a drawn arrow.
  2. Values are encoded as distance traveled along an arrow. Every five pixels traveled increments a register by one.
  3. Stack operations are encoded as turns within an arrow.
  4. Conditionals are encoded as double ended arrows.

The stack operations are:

  1. Turn up: Push the current value onto the left stack.
  2. Turn down: Push the current value onto the right stack.
  3. Turn left: Pop x from the left stack, and subtract x from the current value.
  4. Turn right: Pop x from the right stack, and subtract x from the current value.

There are two types of arrow heads:

  1. Plain arrows. Simply continue forward until you hit another arrow.
  2. Out arrows. Have two extra pixels at the back of the arrow head. Outputs the current value as an ASCII character.

There are three types of arrow rears:

  1. Plain rear. Nothing special.
  2. Start rear. The back of an arrow that has one extra pixel signals the starting location of a program.
  3. Input rear. The back of an arrow that has two extra pixels signals that when entered from the direction the arrow is facing that one character should be read in and stored as the current value.

Arrows in your eyes
Fear where your heart should be
War in your mind
Shame in your cries

- Arrows - Foo Fighters

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for arrows-esolang, version 1.0.2
Filename, size File type Python version Upload date Hashes
Filename, size arrows_esolang-1.0.2-py3.7.egg (16.5 kB) File type Egg Python version 3.7 Upload date Hashes View
Filename, size arrows_esolang-1.0.2.tar.gz (6.4 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page