Pimp My IDE / garage dispatchBack to garage
Dispatch 393 / language mechanics

The source tree is the program.

Folders encodes instructions in empty directories. The joke lands. Then its reference compiler supplies a serious lesson: readable syntax and executed behavior can disagree.

16 Oct 20267 minute readInterface craftExact revision inspected

Empty directories become grammar

Daniel Temkin created Folders in 2015 and updated its project page in 2026. A program is an ordered tree. Folder names do not carry the command, but alphabetical order still decides which branch comes first. The number of directories inside the first child selects a command or expression.[1]

At command level, zero children means if. One means while. Two means declare. Three means let. Four means print. Five means input. Literal values use more nested folders and encode bits through empty or nonempty children.

The Hello World tree shown on the project page has 209 directories and no files. The reference repository adds tiny files at terminal branches so Git can retain a shape that Git would otherwise ignore.[2]

The syntax is visible in the file browser. The behavior still lives in the compiler.

A table is not an execution trace

We inspected the reference repository at commit 015cf65c15ab681f56d59e912e5ad1b8b7672237. Its pure parser sorts directories, counts children, and maps those counts through command and expression enums. The source matches the published command table for if, while, declare, let, print, and input.[3]

One branch deserves a red pen. In ProgramBuilderPure.cs, the Divide case appends a multiplication operator to generated C# at the inspected revision. The language page says that four child folders mean divide. The implementation source appears to emit multiply.

We did not compile or run that project. It targets .NET Framework 4.8 and provides no narrow cross-platform test command. This is a source inspection result, not a runtime verdict. A proper reproducer would transpile one division fixture, inspect the generated C#, and run it in the supported environment.

Give structure a witness

Structure-only code is hard to review in a normal diff. Rename one sibling and its alphabetical position can move. Delete one empty directory and a command can become another command. Git also ignores empty directories, so the repository needs marker files that are not part of the language.

The practical upgrade is a second view. Keep the tree as the source, then generate a readable listing that records the ordered path, child count, decoded token, compiler revision, and output. Review the tree change and the decoded change together.

That rule applies beyond esolangs. Visual workflow files, generated configuration, lockfiles, and agent plans all need a witness that a reviewer can read. If structure carries behavior, the review surface must explain the structure.

Interactive makeover / branch-count decoder

Folder program cutaway

A static syntax table makes you translate counts in your head. This decoder joins the native selector, tree shape, resolved command, and review receipt on one bench.

Set the first child

Choose a count. The control changes only this teaching tree.

Command child count
Decoded / IFFirst child / 0
COMMAND FOLDER
FIRST CHILD IS EMPTY
Resolved tokenIF
Name effectOrder only
Tree decoded as IFZero marker folders selects command index zero.

Print the witness

This receipt records the selected teaching state. It is not compiler output.

Sources read

Inspection boundary: the Git endpoint resolved and the exact revision was cloned read-only. We read the README, project files, parser, enums, and included sample inventory. We did not install .NET Framework 4.8, compile the project, run a sample, or audit the full compiler. The interactive cutaway is an independent teaching model based on the published command table.