Language-SNUSP

A SNUSP Interpreter and Visual Debugger


License
Artistic-1.0-Perl

Documentation

Name

Language::SNUSP - A SNUSP Interpreter and Visual Debugger

language-snusp-pm language-snusp-pm

Synopsis

    > snusp examples/fizzbuzz.snusp
    > snusp --trace examples/fizzbuzz.snusp
    > snusp --debug examples/fizzbuzz.snusp

Description

SNUSP is a two-dimensional programming language described here:

Here is the well-known FizzBuzz algorithm, written in SNUSP:

            /               'B' @=@@=@@++++#
           // /             'u' @@@@@=@+++++#
          // // /           'z' @=@@@@+@++++#
         // // // /         'i' @@@@@@=+++++#
        // // // // /       'F' @@@=@@+++++#
       // // // // // /      LF  ++++++++++#
      // // // // // // /   100 @@@=@@@=++++#
    $@/>@/>@/>@/>@/>@/>@/\   0
    /                    /
    !                             /======= Fizz <<<.<.<..>>>#
    /                             |      \
    \?!#->+ @\.>?!#->+ @\.>?!#->+@/.>\   |
    /        !          !         !  /   |
    \?!#->+ @\.>?!#->+@\ .>?!#->+@/.>\   |
    /        !         \!===\!    !  /   |
    \?!#->+ @\.>?!#->+ @\.>?!#->+@/.>\   |
    /        !          !   |     !  /   |
    \?!#->+@\ .>?!#->+ @\.>?!#->+@/.>\   |
    /       \!==========!===\!    !  /   |
    \?!#->+ @\.>?!#->+ @\.>?!#->+@/>>@\.>/
             !          |   |         |
             /==========/   \========!\=== Buzz <<<<<<<.>.>..>>>#
             |
             \!/=dup==?\>>@\<!/back?\<<<#
               \<<+>+>-/   |  \>+<- /
                          |
    /======================/
    |
    |       /recurse\    #/?\ zero
    \print=!\@\>?!\@/<@\.!\-/
              |   \=/  \=itoa=@@@+@+++++#
              !     /+ !/+ !/+ !/+   \    mod10
              /<+> -\!?-\!?-\!?-\!?-\!
              \?!\-?!\-?!\-?!\-?!\-?/\    div10
                 #  +/! +/! +/! +/! +/

This module installs a SNUSP interpreter so that you can run this code yourself. It also installs a visual debugger, to help you follow the flow of SNUSP programs.

Try it. It's very cool!

Credit

This code originated from http://c2.com/cgi/wiki?SnuspLanguage but has been fairly heavily refactored to be clear, DRY and conform to modern Perl standards.

I have packaged it on CPAN and GitHub for easy installation and continued maintenance.

Author

Ingy döt Net <ingy@cpan.org>

Copyright and License

Copyright 2004. Rick Klement.

Copyright 2013-2014. Ingy döt Net.

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.

See http://www.perl.com/perl/misc/Artistic.html