Skip to content

rswier/swizzle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

swizzle

An esoteric programming language putty

Quick Examples:

  • Hello World: 10 "Hello, World!%c" P;;
  • FizzBuzz:
{M
    1=i
    (i 100 <=?
        (i 15 % 0 ==?
            "FizzBuzz" P;
        :(i 3 % 0 ==?
            "Fizz" P;
        :(i 5 % 0 ==?
            "Buzz" P;
        :
            i "%d" P;;
        )))
        10 "%c" P;;
        i++;
    @)
}
M

Swizzle is an interpreted language built around a very simple core loop that does two things, look up functions and execute them. It doesn't need much to bootstrap itself into a useful substrate, and almost everything is completely modular and optional.

Swizzle supports:

  • inline strings using quotes: "..."
  • numbers, both single digit, and multi-digit: 1, 9001
  • single-letter function definitions: {F <function contents> } (in this case, F is the function's name)
  • single-letter variables: i
  • printf, dlsym, and exit: P, D, E
  • basic math: +, -, *, /, %
  • conditionals and loops: (1 1 == ? <true> : <false> @)
    @ indicates a loop back to the nearest same-level (, ? is just a standard
    c-like ternary operator, branching based on the value on the top of the stack

About

An esoteric programming language

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published