Keep-It-Simple-Syntax

From Esolang
Jump to navigation Jump to search

Logo
KISS
Paradigm(s) imperative, procedural
Designed by User:Elliktronic
Appeared in 2025
Type system dynamic, weak
Memory system register-based (X, Y)
Dimensions one-dimensional
Computational class Turing complete
Reference implementation Original KISS interpreter
Influenced by Brainfuck, Assembly
File extension(s) .kiss

KISS - Keep It Simple Syntax


A minimal imperative language!

Overview

KISS is an esoteric programming language designed to be absurdly minimalistic

It features:

Single variable:

x (plus a temporary y for swaps)

Simple commands:

Single letter instructions with optional args

I/O

Basic ASCII input/output

Labels & Jumps
:label 
G label
File includes
#include "file.kiss"


Syntax

A val - Assign x (number or char in )
I/D/X/M n - Increment, decrement, XOR or multiply x by n
P - Print x as number
CP/CI - Print/Read ASCII char
S n - Swap x <-> y then set x = n
Y/V - Copy x to y / y to x
E n/L n - Skip next line if x == n / x >= n
G label - Jump to :label
C/N/B - Clear, Negate, or bit-flip x
   C - Sets x to 0.
   N - Negates x (x = -x).
   B - Performs a bitwise NOT on x (x = ~x).
R n - Modulo x by n (x = x % n)
Q n - Divide x by n (x = x / n)
^ - Square x (x = x * x)
t - Square root of x (x = sqrt(x))
> n - Store x in memory location n (memory[n] = x)
< n - Load x from memory location n (x = memory[n])
? n - Assign x a random number between 0 and n-1

Examples

Loop
:loop
A 1
P
D 1
E 0
G loop
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

Implemintation

  • Written on C (~300 LOC)
  • No loops(jumps)
  • No strings and functions

Community

Now X is your life