SkillAgentSearch skills...

Esolangs

Interpreters and compilers for esoteric programming languages, from stack-based to modern register-based systems

Install / Use

/learn @bangyen/Esolangs
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

Esolang Interpreters

Python License: GPL v3

A comprehensive collection of interpreters and compilers for esoteric programming languages (esolangs). This repository contains implementations of various esoteric languages, ranging from classic stack-based languages to modern register-based systems.

Table of Contents

About

Esoteric programming languages are designed to be difficult to program in, often as a form of art or humor. This repository provides working interpreters and compilers for a wide variety of these languages, making them accessible for experimentation and learning.

Most interpreters work by reading the file specified by the first command line argument.

Usage

Running an Interpreter

python interpreter.py program.txt

Running a Compiler

python compiler.py program.txt output.asm

Example: Running a Brainfuck Program

python tape-based/brainif.py hello_world.bf

Implemented Languages

Register-based Languages

Languages that use registers to store and manipulate data.

Tape-based Languages

Languages that operate on a tape (similar to Turing machines).

Stack-based Languages

Languages that use a stack for data manipulation.

Other Languages

Languages that don't fit into the above categories.

Extra Implementations

Implementations written in languages other than Python.

C++ Implementations

x86 Assembly Implementations

Lean Implementations

Ruby Implementations

Rust Implementations

Compilers

Compilers that translate esoteric languages to other target languages.

x86 Assembly Compilers

C Compilers

Tools

Utility programs that work with the esoteric languages.

Binary Function Generator

The binary.py program implements a given boolean function in Dig.

python miscellaneous/binary.py

Program Generator

The generate.py program outputs programs which output a given string in different languages.

Supported languages:

  • BFStack
  • BrainIf
  • Container
  • Forþ (Forth)
  • LaserFuck
  • Painfuck
  • Suffolk
  • 123
  • %^2^-1 (Magnitude)
python miscellaneous/generate.py "Hello, World!"

Notes

Important information about specific language implementations.

Known Issues

  • circlefuck: The narcissist program is the only program for which the interpreter doesn't work. The extended quine program doesn't work because it modifies a + symbol, causing it to increment incorrectly.

  • dotlang: The interpreter skips over strings and warp names after parsing them, so printing a string with spaces is possible. If this additional feature seems to be a negative rather than a positive, feel free to create an issue.

Usage Notes

  • Jaune: Only one character can be input at a time.

  • Suffolk: Although the language is specified to run on an infinite loop, a second command line argument may be given to set the number of loops. The default is 10.

  • 123: Input is given at the end of the program. The two are separated by a single |.

Contributing

Contributions are welcome! If you find bugs or want to add new language implementations, please feel free to submit issues or pull requests.

License

This project is licensed under the GPL v3 License - see the LICENSE file for details.

View on GitHub
GitHub Stars12
CategoryDevelopment
Updated2mo ago
Forks3

Languages

Python

Security Score

95/100

Audited on Feb 4, 2026

No findings