DotCode: Dot and NumDot esoteric programming languages
Project description
DotCode
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
Installation
For users (recommended)
Install directly from PyPI:
pip install dotcode
This installs the dot and numdot commands system-wide.
For development / contributors
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 .
Quick start
Dot language
dot compile hello.py -o hello.dcode
dot run hello.dcode
NumDot language
numdot compile hello.py -o hello.nd
numdot run hello.nd
numdot decode hello.nd -o hello.py
Example hello.py:
print("Hello from DotCode")
File extensions & conventions
- Dot language files:
*.dcode
(chosen to avoid collision with Microsoft Word.dotfiles) - NumDot language files:
*.nd - Python source input:
*.py(recommended)
Language summaries
Dot (DotCode)
- Encoding: each character encoded as
.repeatedord(character)times - Character groups separated by a single space
NumDot
- Encoding: each character encoded as
<decimal ASCII value>.
Both languages are fully reversible. The runtime decodes the source back to Python and executes it.
CLI reference
dot
dot compile <input.py> [-o output.dcode]
dot run <input.dcode>
numdot
numdot compile <input.py> [-o output.nd]
numdot run <input.nd>
numdot decode <input.nd> [-o output.py]
Security notice
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.
Project structure
dotcode/
├─ pyproject.toml
├─ README.md
├─ CHANGELOG.md
├─ LICENSE
├─ dotcode/
│ ├─ dot/
│ ├─ numdot/
│ └─ common/
└─ tests/
Repository
GitHub: https://github.com/CarbonIt-Labs/dotcode
Contact
For questions, issues, or collaboration:
- Email: projectcarbonit@gmail.com
- GitHub Issues are preferred for bugs and feature requests
License
MIT License.
Author
Edwin Sam K Reju
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file dotcode-1.0.1.tar.gz.
File metadata
- Download URL: dotcode-1.0.1.tar.gz
- Upload date:
- Size: 6.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aca6259ba4f80f4c54f6eff2b497306c3004c963a7711d7da48d9e2d11db5157
|
|
| MD5 |
c22be83654e47de200cd9e3d0b32f9c8
|
|
| BLAKE2b-256 |
fcc345336922189a5b708489f70791e5f2f7014d420c6d9339fc880f49d5a03c
|
File details
Details for the file dotcode-1.0.1-py3-none-any.whl.
File metadata
- Download URL: dotcode-1.0.1-py3-none-any.whl
- Upload date:
- Size: 6.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4f68235d5a693c1cd29511248d97f3ec9f24fee41fb243731271b5cc67098b8c
|
|
| MD5 |
faeb1c41cd9064b4f530ba0c5dfc01b1
|
|
| BLAKE2b-256 |
5cd62e93729d9b29ce4e1f900b3aad3ab9cfefb709c11c236c9a28cf53ffa213
|