Skip to content

elrt/KISS-lang

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

26 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

p.s https://esolangs.org/wiki/Keep-It-Simple-Syntax

KISS: The "Keep It Simple Syntax" Esolang

screenshot

(Because why use 26 variables when one x will do?)
KISS is a minimalist, Turing-tarpit-adjacent esoteric language where all computation revolves around a single sacred integer x, worshipped like an ancient deity. Want to compute something? You shall manipulate x. Want to print something? You shall channel x. Want to include another file? You shall... well, you get it.


Changelog

Recent Changes:

  • 10-06-2025:
    • Added new commands and some bug fixes:p (commit: c1bf16d)
    • Update example.kiss (commit: 7037b17)

Language Specs (Because Even Esolangs Need Rules)

1. The One True Variable

  • There is only x.
  • x is an integer.
  • x is your life now.

2. Command Syntax (Do More with Less!)

All commands are single uppercase letters, followed by optional arguments.

screenshot

Command Effect Example
A Assign to x A 42x = 42
A 'X'x = 88 (ASCII)
I Increment x I 5x += 5
D Decrement x D 3x -= 3
P Print x (as number) P → Output: 42
CP Character Print (ASCII) CP → If x=65, prints 'A'
CI Character Input (ASCII) CIx = getchar()
C Clear x Cx = 0
X XOR x with value X 5x ^= 5
M Multiply x M 2x *= 2
Q Quotient (Divide x) Q 3x /= 3
R Remainder (Modulo x) R 4x %= 4
S Swap x and value S 5 → swaps x with y, then x = 5
N Negate x Nx = -x
B Bitwise NOT x Bx = ~x
Y Store x in y Yy = x
V Retrieve y to x Vx = y
E Equals jump (skip next if x != val) E 5 → skip next line if x != 5
L Less-than jump (skip next if x < val) L 10 → skip next line if x < 10
G Goto label G loop → jumps to :loop
^ Square x ^x = x * x
t Integer Square Root of x tx = (int)sqrt(x)
? Random number (0 to value - 1) ? 10x = random(0, 9)
> Store x in memory location > 0memory[0] = x
< Load x from memory location < 1x = memory[1]
: Label definition :loop → defines a label named loop
#include Import another .kiss file #include "lib.kiss"

3. Labels and Control Flow

Labels are defined with : prefix:

:loop
A 1
P
D 1
E 0
G loop

This prints numbers from 1 down to 0.

4. Sample Program (Hello World)

# KISS-compliant "Hello World"
A 72    # 'H'
CP
A 101   # 'e'
CP
A 108   # 'l' (x2)
CP
CP
A 111   # 'o'
CP
A 32    # ' '
CP
A 87    # 'W'
CP
A 111   # 'o'
CP
A 114   # 'r'
CP
A 108   # 'l'
CP
A 100   # 'd'
CP
A 10    # '\n'
CP

Output: Hello World

(Yes, this is painful. No, I won't add strings.)

.