1. Home
  2. /
  3. Whitespace
  4. /
  5. Conditional Jump

Conditional Jump - Whitespace Typing CST Test

Loading…

Conditional Jump — Whitespace Code

Jumps to a label if top of stack is zero.

SSSTLSSS  // Label definition
TSTLSSS  // Jump if zero

Whitespace Language Guide

Whitespace is an esoteric programming language that uses only spaces, tabs, and linefeeds as syntax. All non-whitespace characters are ignored, making programs invisible to the casual observer.

Primary Use Cases

  • ▸Code obfuscation and stealth programs
  • ▸Esolang research and experimentation
  • ▸Interpreter-building demonstrations
  • ▸Educational stack-based execution examples
  • ▸Novelty programming challenges

Notable Features

  • ▸Only whitespace characters have meaning
  • ▸Stack-based instruction set
  • ▸Heap access for memory operations
  • ▸Visible characters are ignored
  • ▸Fully Turing-complete despite minimalism

Origin & Creator

Whitespace was created by Edwin Brady and Chris Morris and released on April Fool’s Day in 2003.

Industrial Note

Whitespace is used in esolang communities, obfuscation contests, security demonstrations, and teaching how interpreters parse tokens.

Quick Explain

  • ▸Whitespace treats spaces, tabs, and linefeeds as the only valid tokens.
  • ▸Instructions are encoded by combinations of these invisible characters.
  • ▸The language uses a stack-based execution model.
  • ▸All visible characters (letters, numbers, symbols) are treated as comments.
  • ▸Whitespace programs appear blank to users unless viewed with a special editor.

Core Features

  • ▸Space/tab binary instruction encoding
  • ▸Stack push and arithmetic ops
  • ▸Flow control and labels
  • ▸Heap read/write
  • ▸I/O operations for numbers and characters

Learning Path

  • ▸Learn instruction groups
  • ▸Understand stack operations
  • ▸Practice encoding numbers
  • ▸Master labels and flow control
  • ▸Build invisible multi-step programs

Practical Examples

  • ▸Hello World with whitespace-encoded chars
  • ▸Stack-based arithmetic calculator
  • ▸Loop implemented with labels/jumps
  • ▸Fibonacci generator
  • ▸Interpreter implemented in Whitespace

Comparisons

  • ▸Whitespace vs Brainfuck: BF is visible minimalism, Whitespace is invisible minimalism
  • ▸Whitespace vs Piet: Piet is visual art, Whitespace is invisible code
  • ▸Whitespace vs Befunge: Befunge is 2D; Whitespace is linear stack-based
  • ▸Whitespace vs Python: Python is readable; Whitespace intentionally isn't
  • ▸Whitespace vs Malbolge: Malbolge is hard by rules; Whitespace is hard by invisibility

Strengths

  • ▸Extremely obfuscated code
  • ▸Good for interpreter design practice
  • ▸Simple core instruction set
  • ▸Whitespace-only stealth programs
  • ▸Compact and minimal syntax

Limitations

  • ▸Hard to read and write without tools
  • ▸Invisible code makes debugging difficult
  • ▸Not suited for real-world applications
  • ▸Editors often auto-strip whitespace
  • ▸Code corruption is easy and common

When NOT to Use

  • ▸Readable software
  • ▸Collaborative projects
  • ▸Performance-critical systems
  • ▸Large real-world applications
  • ▸Anything requiring maintainability

Cheat Sheet

  • ▸Space = 0
  • ▸Tab = 1
  • ▸LF = instruction terminator
  • ▸Commands grouped by first whitespace
  • ▸Stack -> main data structure

FAQ

  • ▸Is Whitespace free?
  • ▸Yes, completely open-source.
  • ▸Why is my program failing?
  • ▸Probably your tabs/spaces are mixed.
  • ▸Does Whitespace ignore visible characters?
  • ▸Yes, they are treated as comments.
  • ▸Is it practical?
  • ▸No - it's intentionally absurd and invisible.
  • ▸How do I view my program?
  • ▸Use a whitespace visualizer or hex editor.

30-Day Skill Plan

  • ▸Week 1: Learn command groups
  • ▸Week 2: Stack-based arithmetic
  • ▸Week 3: Implement loops
  • ▸Week 4: Master heap ops
  • ▸Week 5: Write complex invisible programs

Final Summary

  • ▸Whitespace is an esoteric language using only spaces, tabs, and linefeeds.
  • ▸All visible characters are treated as comments.
  • ▸Stack-based execution with heap and flow control.
  • ▸Perfect for obfuscation, puzzles, and interpreter research.
  • ▸Extremely hard to write without dedicated tools.

Project Structure

  • ▸src/ - actual .ws files
  • ▸build/ - compiled/interpreted outputs
  • ▸tools/ - visualization/editing utilities
  • ▸examples/ - classic Whitespace programs
  • ▸docs/ - instruction reference sheets

Monetization

  • ▸Workshops on esoteric languages
  • ▸Obfuscation challenge events
  • ▸Educational materials
  • ▸Esolang books
  • ▸Interpreter development consulting

Productivity Tips

  • ▸Use a whitespace-visualizing editor
  • ▸Write visible pseudocode first
  • ▸Avoid manual typing of tabs/spaces
  • ▸Test frequently
  • ▸Organize labels clearly

Basic Concepts

  • ▸Space -> 0, Tab -> 1 in command encoding
  • ▸Instructions grouped by leading character
  • ▸Stack operations: push, duplicate, swap, pop
  • ▸Flow control via labels + jumps
  • ▸I/O instructions for reading/writing

Official Docs

  • ▸https://esolangs.org/wiki/Whitespace
  • ▸https://web.archive.org/web/*/whitespace-lang

More Whitespace Typing Exercises

Hello World in WhitespaceWhitespace Push NumberWhitespace Duplicate TopWhitespace Swap Top TwoWhitespace AdditionWhitespace SubtractionWhitespace Print CharacterWhitespace Label and JumpWhitespace End Program

Practice Other Languages

CReactPythonC++RustTypeScriptKotlinPHPJavaC#RubyMqlCqlN1qlCypher