http://shinh.skr.jp/obf/sym_poly_quine.txt
This script is a Quine, so it outputs the program itself into stdout without file input. You can run this script by Ruby, Perl, and JavaScript. This script is a polyglot of these three languages. And, this script was written only with symbolic characters (!"#$%&'()*+,-./:;<=>?@[\\]^_`{|}~). There should be no alphabets, numbers, whitespaces, and 8bit characters.
Perl is OK only with symbolic characters. You can convert any Perl scripts into symbolic style scripts using Acme::EyeDrops. This module is awesome.
http://search.cpan.org/dist/Acme-EyeDrops/
Also, all JavaScript scripts can be converted into symbolic style. jjencode does the magic.
http://utf-8.jp/public/jjencode.html
As for Ruby, Ruby 1.9 is perfect for symbolic programming. kurimura found the way to convert arbitrary Ruby scripts into symbolic format.
http://d.hatena.ne.jp/kurimura/20080824
Unfortunately, I think Ruby 1.8's symbolic programming is very limited. For example, you cannot create a loop. As quine only require substitutions and outputs for stdout, which is doable with symbolic Ruby 1.8, my script can run with Ruby 1.8.
There are some other weird code like this:
No comments:
Post a Comment