DotCode is a family of dot-based esoteric programming languages with reversible, Python-interoperable tooling.
This project provides two languages:
-
Dot — unary dot-length encoding
(each character →.repeatedASCIItimes; groups separated by spaces)
File extension:*.dcode -
NumDot — numeric dot-terminated encoding
(each character →<ASCII>.)
File extension:*.nd
DotCode includes:
- A clean compiler (Python → Dot / NumDot)
- A runtime and decoder (Dot / NumDot → Python + execution)
- Two command-line tools:
dotandnumdot - Fully reversible, lossless translation
Install directly from PyPI:
pip install dotcodeThis installs the dot and numdot commands system-wide.
If you want to modify DotCode or run it from source:
git clone https://github.com/CarbonIt-Labs/dotcode.git
cd dotcode
pip install -e .dot compile hello.py -o hello.dcode
dot run hello.dcodenumdot compile hello.py -o hello.nd
numdot run hello.nd
numdot decode hello.nd -o hello.pyExample hello.py:
print("Hello from DotCode")- Dot language files:
*.dcode
(chosen to avoid collision with Microsoft Word.dotfiles) - NumDot language files:
*.nd - Python source input:
*.py(recommended)
- Encoding: each character encoded as
.repeatedord(character)times - Character groups separated by a single space
- Encoding: each character encoded as
<decimal ASCII value>.
Both languages are fully reversible. The runtime decodes the source back to Python and executes it.
dot compile <input.py> [-o output.dcode]
dot run <input.dcode>
numdot compile <input.py> [-o output.nd]
numdot run <input.nd>
numdot decode <input.nd> [-o output.py]
DotCode executes decoded Python source using exec.
Do NOT run untrusted .dcode or .nd files.
Running encoded programs can execute arbitrary Python code. Always inspect source or use a sandboxed environment when handling third-party files.
dotcode/
├─ pyproject.toml
├─ README.md
├─ CHANGELOG.md
├─ LICENSE
├─ dotcode/
│ ├─ dot/
│ ├─ numdot/
│ └─ common/
└─ tests/
MIT License.
Edwin Sam K Reju