Skip to main content

Therl

Truly Human Readaby Language
(Yes, the acronym is a little cursed. I know.)

Therl is a human-readable, instruction-based programming language written entirely in pure Python. Its goal is to make code read almost like plain English while remaining predictable and easy to parse.

set greeting to "hello"

func greet <name>

    say greeting + " " + name + "!"

eof

func main

    run greet with <name> as "Jeff"

    set numbers to [1..10]

    say numbers

eof

run main

Output:

hello Jeff!
[1, 2, 3, 4, 5, 6, 7, 8, 9]

Features

  • 📖 Human-readable syntax
  • 📝 Instruction-based language design
  • 🐍 Written entirely in pure Python
  • 🔄 Strictly dynamically typed variables
  • 📦 Built-in lists
  • 🔢 Integer, float, string and boolean types
  • 🧩 Functions with named parameters
  • 📢 Simple say statement for output
  • ✏️ Mutable list elements
  • 🚀 Easy to extend

Example

set greeting to "hello"

func greet <name>

    say greeting + " " + name + "!"

eof

func main

    say "Welcome!"

    run greet with <name> as "Jeff"

    set ids to [1..10]

    say ids

    set ids at 0 to 1000

    say ids

    add 10 to ids

    say ids

eof

run main

Output:

Welcome!
hello Jeff!
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1000, 2, 3, 4, 5, 6, 7, 8, 9]
[1000, 2, 3, 4, 5, 6, 7, 8, 9, 10]

Project Status

⚠️ Therl is currently in active development.

Expect missing features, breaking changes, and plenty of experimentation as the language evolves.


Roadmap

  • Arithmetic expressions
  • Conditional statements
  • Loops
  • Dictionaries / Maps
  • Modules
  • Classes
  • Error reporting with line numbers
  • Standard library

Why?

Because making programming languages is fun.

And because writing

set score to 100

add 10 to score

say score

just feels oddly satisfying.


Release files for therl 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for therl 0.1.0
File Size Uploaded
therl-0.1.0.tar.gz 7.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for therl 0.1.0
File Interpreter ABI Platform
therl-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 14.9 kB

Release files / therl-0.1.0.tar.gz

Download URL therl-0.1.0.tar.gz
Size 7.1 kB
Tags Source
SHA-256 checksum
How to use checksums
c022282efbb34a391af60b0d633f5e5bbe1a82b4b0d53ef8f10b0127b26ada8e
BLAKE2b-256 checksum
How to use checksums
d6dd67b6a7bad5f959c8f9d8fb736cd3172ac69c5faa78ccc1dbecebab669125
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release files / therl-0.1.0-py3-none-any.whl

Download URL therl-0.1.0-py3-none-any.whl
Size 7.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
47a9ee48a591f93325f7b5596dd84f41ff59f758350787222c6b810ad899d41c
BLAKE2b-256 checksum
How to use checksums
538f873f5d553b7d369ed396d676db62fc2abadcb3c4dfbfb26af80f1c9b9613
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.1

Release history Release notifications | RSS feed

0.1.3

2 release files

0.1.2

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page