We are currently working on new rules for what content should and shouldn't be allowed on this website, and are looking for feedback! See Esolang:2026 topicality proposal to view and give feedback on the current draft.
ASCIIscript
ASCIIscript is an imperative, stack-based language based on the concept of a small instruction set created in 2026. Being a small language, it relies upon a small group of commands. Its goals consist of making source code more concise and readable, and hence allowing more code to be written at faster speeds.

Inspiration
ASCIIscript was inspired by aspects of C, Haskell, and lambda calculus.
Computational model
ASCIIscript is based upon lambda calculus but primarily uses a mix of models.
Commands
d A.x :: [ DEFINES A WITH PARAMETER X ]
p x; [ PRINTS X ]
x := n; [ PUTS USER INPUT IN X ]
i x = 0 :: [ IF X = 0 ]
p x; [ PRINT X ]
w x < 10 :: [ WHILE X < 10 ]
x := x + 1; [ INCREMENT X ]
y.5; [ INIT 5-LONG ARRAY AT Y, BEGIN AS 0 ]
w z < S.y :: [ WHILE Z (INIT AT 0) < SIZE OF Y ]
y.z := z; [ Y[Z] = Z ]
z := z + 1; [ INCREMENT Z ]
u z; [ PUSH Z TO STACK ]
o z; [ POP FROM STACK AND PUT IN Z]
a := r script.asc; [ PUT SCRIPT.ASC IN A ]
w "Hello!" a; [ WRITE "Hello!" TO SCRIPT.ASC]
h x; [ HALT WITH X ]
Syntax
ASCIIscript uses semicolons, like C, to end lines and to make it easier to implement. However, unlike C, there are no curly braces. Instead, a block is began with :: and is maintained using indentation. If a function begins with F.xy, that means it has two variables: x and y. When a new variable is mentioned, it is initialised to 0 automatically.
Examples
Hello world
d H. :: p "Hello world!"; h 0;
Factorial
d F.x ::
y := x;
z := 1;
w y > z ::
x := x * z;
z := z + 1;
h x;
Cheating quine
d Q. :: x := r quine.asc; p x; h 0;