DriversRecommendedOutdated drivers can make a good PC feel brokenScan driver issues before chasing fixes manually.Scan NowOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk3 min

I Made My Own Programming Language: What TermsLang Taught Its Creator

Owen Dechow’s TermsLang is an imperfect interpreter he built to learn. Its syntax, abandoned compilation plan, and missing type enforcement show why a hobby language can be valuable without being practical.
Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Yes, you can make a programming language as a learning project without building something anyone else should use. Owen Dechow’s TermsLang began after he had been learning Rust and completing other projects. In his August 14, 2024 essay, he describes an interpreter that he considers impractical—and a project he still loves because of what it taught him.

Why Dechow started TermsLang

Dechow approached language-building as a way to learn by making, not as a plan to replace an established language. That distinction matters: the project’s success, by his account, was educational rather than practical. He sums up the lesson this way: “A good project is a project that teaches you.”

As an Amazon Associate I earn from qualifying purchases.

How the language takes code from text to execution

Lexing and parsing

TermsLang first uses a lexer to turn source text into tokens and recognize keywords and symbols. A parser then arranges those tokens according to the language’s grammar. These stages made the syntax choices concrete: the parser had to recognize not just what each symbol meant, but how the pieces fit into valid statements.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Syntax built around the parser

TermsLang uses ~ to end a line, $ to create an object, and ^ for exponentiation. Its keywords include updt, cll, and loop; Dechow says updt and cll helped the parser distinguish statement forms. Function calls require a dot before the parentheses. That rule made parsing easier for him, but he later found it awkward to write—an example of an implementation convenience becoming a usability cost.

An abandoned syntax-tree module

Dechow created an active syntax-tree module with the intention of using it for type checking and validation, then removed it. The project therefore did not retain that planned layer of checks. His account shows one way a language project can evolve: an intended component may be dropped as the implementation changes, rather than becoming part of the finished design.

From a compilation plan to an interpreter

Dechow initially planned to compile TermsLang, but abandoned that route after installation difficulties with LLVM on his older MacBook and a Windows machine. He proceeded with an interpreter instead. This is a report of his own setup and decision, not evidence that LLVM is generally difficult to install or that interpretation is the better choice for other language projects.

What TermsLang can—and cannot—do

Annotations without enforcement

TermsLang has type annotations, but Dechow says the language does not enforce them. Incompatible values can therefore pass through until code tries to access a field that is missing. An annotation can communicate intended types, but without checks it does not prevent this class of runtime failure.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Slow execution, with no measured cause

Dechow describes the interpreter as slow. He speculates that integer references and storing enum-based values in hash maps contribute to the inefficiency, but reports no benchmark or confirmed diagnosis. That explanation should be read as his hypothesis, not as a measured finding about the implementation.

There is more than one route to a small language

A separate maker’s project, Glorp, takes a different route: it uses Lark to parse a grammar into a structured tree, then transforms that tree into Python code. That is a transpiler approach, while Dechow describes TermsLang as an interpreter. These individual projects illustrate different possible designs; they are not a controlled comparison of speed, difficulty, or quality.

For a personal project, the choice depends on what you want to learn and what you want the result to run on. An interpreter executes the language’s own representation; a transpiler translates it to a target such as Python. TermsLang’s history also shows that planned features and implementation choices can change as the work exposes new problems.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

What to take from the project

TermsLang is not presented as a practical tool or a polished language for other people to adopt. Its value for Dechow was the experience of building the pieces, making syntax decisions, changing implementation plans, and encountering limitations firsthand. If the goal is learning, an imperfect language can still be a worthwhile finished project; if the goal is a usable language for others, features such as dependable type checks and a comfortable syntax would need more attention.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
Outdated Drivers Are Slowing You DownFree scan - exact matches
Windows Errors? Fix Them Before They SpreadFree repair scan

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.