Search for a tool
Whitespace Language
Tool to decode / code in whitespace, an exotic programming language that only uses blank / invisible characters like space, tab or newline/line feed.
Results
Whitespace Language - dCode
Tag(s) : Programming Language
Share
dCode and more
dCode is free and its tools are a valuable help in games, maths, geocaching, puzzles and problems to solve every day!
A suggestion ? a feedback ? a bug ? an idea ? Write to dCode!
- Informatics
- Programming Language
- Whitespace Language
Interpret/Execute Whitespace code
Code some text with Whitespace
Answers to Questions (FAQ)
What is Whitespace language? (Definition)
The Whitespace programming language gets its name from the fact that it uses only the 3 white characters: space, tab and newline. The source code of programs written in Whitespace are therefore invisible.
In order to make the code visible, it is common to use 3 characters: S for space (Space), T for tabulation (Tab), and L for new line (Line feed).
All visible characters are ignored by the program and can be used as comments (or to catch attention). This is exactly the opposite operation of most programming languages or spaces are generally ignored.
How to code in Whitespace?
The whitespace uses a stack, a heap and 22 structured instructions, which start with an IMP (Modification Parameter Instruction) among 5 possible: S (space) modifies the stack, TS (tab + space) performs a calculation, TT (tab + tab) accesses the heap, L (line feed) manages the goto / jump of the program and TL (tab + line feed) manages I / O.
The complete list of 22 Whitespace instructions:
IMP + Command | Parameter | Description |
---|---|---|
S S | Number | Stacks the number |
S LS | Copy top of stack | |
S LT | Reverse the top two items of the stack | |
S LL | Remove top of stack | |
TS SS | Addition | |
TS ST | Subtraction | |
TS SL | Multiplication | |
TS TS | Integer Division | |
TS TT | Modulo | |
TT S | Save to heap | |
TT T | Get the heap | |
L SS | Label | Create a label in the program |
L ST | Label | Label call |
L SL | Label | Jump to the label |
L TS | Label | Jump to label if top of stack is 0 |
L TT | Label | Jump to the label if the top of the stack is <0 |
L TL | End of the subroutine, and return | |
L LL | End of program | |
TL SS | Show top of stack as ASCII character | |
TL ST | Display top of stack as an integer | |
TL TS | Read a character and save it at the address described by the top of the stack | |
TL TT | Read a number and store it at the address described by the top of the stack |
The numbers respect a specific syntax: sign + absolute values in binary + line feed. The sign is S (space) for positive or T (tabulation) for negative. The value of the number is written in binary with S (space) for 0 and T (tabulation) for 1.
Example: The number +97 is positive (coded S) and has the binary value 1100001 (coded TTSSSST), so it is coded as S TTSSSST L
Example: SS STTSSSSTL TLSS corresponds to the instruction stacks the number 97 and displays it as an ASCII character, so the program displays a.
How to decode Whitespace?
The interpretation of white-space corresponds to the reading and application of coded instructions.
On dCode, it is possible to read a file (generally with the extension .ws) or to copy and paste a program (be careful not to add a space or a new line unintentionally because this could cause errors)
The execution is done in the browser, with JavaScript.
dCode uses WS2JS, a Javascript interpreter by Luilak (MIT License) here
How to recognize a Whitespace code?
The message is invisible, consisting only of spaces, tabs and newlines.
Sometimes the characters S, T and C accompany the code.
It is possible to accompany the code with any text (visible characters only) without affecting it, so it is an excellent method of steganography.
Why the Whitespace language even exists?
Whitespace language was designed as an esoteric programming language, meaning it is not intended to be used as a practical tool, but rather as a way to challenge and amuse programmers.
When Whitespace was invented?
Whitespace was described on April 1, 2003 by Edwin Brady and Chris Morris (as an April Fool) at Durham University.
Source code
dCode retains ownership of the "Whitespace Language" source code. Except explicit open source licence (indicated Creative Commons / free), the "Whitespace Language" algorithm, the applet or snippet (converter, solver, encryption / decryption, encoding / decoding, ciphering / deciphering, breaker, translator), or the "Whitespace Language" functions (calculate, convert, solve, decrypt / encrypt, decipher / cipher, decode / encode, translate) written in any informatic language (Python, Java, PHP, C#, Javascript, Matlab, etc.) and all data download, script, or API access for "Whitespace Language" are not public, same for offline use on PC, mobile, tablet, iPhone or Android app!
Reminder : dCode is free to use.
Cite dCode
The copy-paste of the page "Whitespace Language" or any of its results, is allowed (even for commercial purposes) as long as you credit dCode!
Exporting results as a .csv or .txt file is free by clicking on the export icon
Cite as source (bibliography):
Whitespace Language on dCode.fr [online website], retrieved on 2024-08-02,
Summary
- Interpret/Execute Whitespace code
- Code some text with Whitespace
- What is Whitespace language? (Definition)
- How to code in Whitespace?
- How to decode Whitespace?
- How to recognize a Whitespace code?
- Why the Whitespace language even exists?
- When Whitespace was invented?
Similar pages
- Brainf*ck
- Javascript
- Zero-width Space (ZWSP)
- LOLCODE Language
- Blub!
- Pikalang
- Reversef*ck
- DCODE'S TOOLS LIST
Support
Forum/Help
Keywords
whitespace,white,space,tabulation,line,feed,ws,blank,empty,invisible
Links
- Contact
- About dCode
- dCode App
- Wikipedia
https://www.dcode.fr/whitespace-language
© 2024 dCode — El 'kit de herramientas' definitivo para resolver todos los juegos/acertijos/geocaching/CTF.