cogito@tjalk.cs.vu.nl (Robbert van Renesse) (12/30/86)
Here follows a PORSROP (say it out loud), that is, a
PORtable Self-Reproducing Obfuscated Palindrome+
===============================================
Features:
produces itself as output
reversible
short++
Author:
Robbert van Renesse
Dept. of Maths and Computer Science
Vrije Universiteit
Amsterdam
The Netherlands
------------
+) This research was supported in part by the Netherlands Foundation for
the Advancement of Pure Research under grant 125-30-10, in an effort
to develop a Dutch SDI system. It will reproduce missiles sent to the
Netherlands and reverse the original direction (whatever that was).
++) Since this is a Dutch project the program must be short, to save on the
number of bytes (each byte is more disk space, thus more money).
--------8<----------------8<----------------8<----------------8<--------
/*X enifed#
};)b-f,b,1(etirw;)01(a,)p*(l);p++*;m=p(rof;)01(a,)44(a,)
43(a,)++p*(l,)43(a);p*;1+f=b(rof{)(niam};)++s*(a)s*(elihw{
;s*rahc)s(l};c=b--* =++f*{)c(a;b*,994+d=f*,]999[d,m=p**,}0
,"/*X enifed#"
,"};)b-f,b,1(etirw;)01(a,)p*(l);p++*;m=p(rof;)01(a,)44(a,)"
,"43(a,)++p*(l,)43(a);p*;1+f=b(rof{)(niam};)++s*(a)s*(elihw{"
,";s*rahc)s(l};c=b--* =++f*{)c(a;b*,994+d=f*,]999[d,m=p**,}0"
,"*/char*m[]={"{=][m*rahc/*",
"0},**p=m,d[999],*f=d+499,*b;a(c){*f++= *--b=c;}l(s)char*s;",
"{while(*s)a(*s++);}main(){for(b=f+1;*p;)a(34),l(*p++),a(34",
"),a(44),a(10);for(p=m;*++p;)l(*p),a(10);write(1,b,f-b);}",
"#define X*/",
0},**p=m,d[999],*f=d+499,*b;a(c){*f++= *--b=c;}l(s)char*s;
{while(*s)a(*s++);}main(){for(b=f+1;*p;)a(34),l(*p++),a(34
),a(44),a(10);for(p=m;*++p;)l(*p),a(10);write(1,b,f-b);}
#define X*/
--------8<----------------8<----------------8<----------------8<--------
Who's going to make the shortest one? For a start, the above program
can be made as small as 10 lines instead of 18, by eliminating some
newlines, saving 12 characters.
Have fun in 1987.