2.3 KiB
BingBong 2.0
BingBong is a minimalist, esoteric programming language designed to be as simple and difficult to use as possible. This new version of BingBong is a binary representation of Python code.
Language Elements
The BingBong language consists of only two commands:
.(dot): Represents a0in the binary representation of the code.,(comma): Represents a1in the binary representation of the code.
Execution Model
The interpreter reads the BingBong source code, converts the . and , characters to a binary string, decodes the binary string into a UTF-8 string, and then executes the resulting string as Python code.
Warning: The interpreter uses exec() to run the decoded Python code. This is a powerful but potentially dangerous function. Only run BingBong code from sources you trust.
Interpreter
The language is interpreted by the bingbong_interpreter.py script.
Usage
To run a BingBong program, execute the interpreter from your command line and pass the path to your source file as an argument:
python bingbong_interpreter.py your_program.bb
Converter
A helper script, py_to_bingbong.py, is provided to convert standard Python code into the BingBong format.
Usage
To convert a Python file (.py) to a BingBong file (.bb), run the following command:
python py_to_bingbong.py your_python_script.py
This will create a new file with the same name but with the .bb extension.
Example Workflow
-
Create a Python file named
hello.pywith the following content:print("Hello, BingBong 2.0!") -
Convert it to a BingBong file:
python py_to_bingbong.py hello.py -
This will generate a
hello.bbfile with a long sequence of.and,characters. -
Run the BingBong file:
python bingbong_interpreter.py hello.bb -
The output will be:
--- Executing Decoded Python Code --- Hello, BingBong 2.0! --- Execution Finished ---
Philosophy
The design philosophy of BingBong is to explore the limits of simplicity in programming language design, while intentionally creating a cumbersome and difficult-to-master tool. It serves as a thought experiment and a challenge for programmers who enjoy working with esoteric languages.