[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference turris::languages

Title:Languages
Notice:Speaking In Tongues
Moderator:TLE::TOKLAS::FELDMAN
Created:Sat Jan 25 1986
Last Modified:Wed May 21 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:394
Total number of notes:2683

372.0. "Obfuscated or die" by AUSSIE::GARSON (Hotel Garson: No Vacancies) Tue Dec 14 1993 02:15

/* I don't know where this came from but there are some seriously ill
    people in the world.
    
    On VAX you need to use CC/DECC to compile.
*/
#include <stdio.h>
main(t,_,a )
char *a;
{
  return! 0<t ? 
    t<3 ? main(-79,-13,a+main(-87,1-_,main(-86, 0, a+1 )+a)):1,
    t<_ ? main( t+1, _, a ):3,
    main ( -94, -27+t, a )&&t == 2?( _<13 ? main ( 2, _+1, "%s %d %d \n" ):9) 
      :16:
      t<0?
      t<-72?main( _, t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de }+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#\
;#q#n+,/+k#;*+,/'r :'d*'3,}{w+K w'K:'+}e#';dq#'l \
q#'+d'K#!/+k#;q#'r}eKK#}w'r}eKK{nl]'/#;#q#n'){)#}w'){){nl]'/+#n';d}rw' i;# \
){nl]!/n{n#'; r{#w'r nc{nl]'/#{l,+'K {rw' iK{;[{nl]'/w#q#n'wk nw' \
iwk{KK{nl]!/w{%'l##w#' i; :{nl]'/*{q#'ld;r'}{nlwb!/*de}'c \
;;{nl'-{}rw]'/+,}##'*}#nc,',#nw]'/+kd'+e}+;#'rdq#w! nr'/ ') }+}{rl#'{n' ')# \
}'+}##(!!/"):t<-50?_==*a ?putchar(31[a]):main(-65,_,a+1):main((*a == '/') + t, _, a + 1 )
:0<t?main ( 2, 2 , "%s"):*a=='/'||main(0,main(-61,*a, "!ek;dc i@bK'(q)-[w]*%n+r3#l,{}:\nuwloca-O;m .vpbks,fxntdCeghiry")
,a+1);
}
T.RTitleUserPersonal
Name
DateLines
372.1Sigh. Credit where due...QUARRY::reevesJon Reeves, ULTRIX compiler groupTue Dec 14 1993 10:2420
This code is from the 1988 International Obfuscated C Code Contest, and
was written by

        Ian Phillipps
        Cambridge Consultants Ltd
        Science Park
        Milton Road
        Cambridge CB4 4DW
        England

camcom!igp (at the time).  Judges comments:

The program is smaller than even the 'compressed' form of its output,
and thus represents a new departure in text compression standards.

The judges thought that this program looked like what you would get
by pounding on the keys of an old typewriter at random.

(Note that the original was 53 lines long and was formatted in a more
random appearing way...)
372.2C soreMU::PORTERbah, humbug!Tue Dec 14 1993 16:198
Not too robust...  :-)

	$ cc foo
	$ link foo
	$ foo := $sys$disk:[]foo
	$ foo bar
	On the

372.3AUSSIE::GARSONHotel Garson: No VacanciesTue Dec 14 1993 16:4312
    re .1
    
    It was forwarded to me without credit and indeed the person forwarding
    it indicated that he didn't know the source. I will back propagate the
    credit information to him. Tks.
    
    re .2
    
    Yeah, I noticed that too but it just adds to the appeal. (-:
    
    There is also a spelling error but I'm not sure where the bug is.
    Fix left as exercise for the reader (EFTR).
372.4BLOCKP::NETHCraig NethTue Dec 14 1993 17:0012
>>    There is also a spelling error but I'm not sure where the bug is.
>>    Fix left as exercise for the reader (EFTR).

good:
<       t<-72?main( _, t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de}+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#\
bad:
>       t<-72?main( _, t,"@n'+,#'/*{}w+/w#cdnr/+,{}r/*de }+,/*{*+,/w{%+,/w#q#n+,/#{l+,/n{n+,/+#n+,/#\
							^ delete this space.

Don't ask me how I figured this out.  I'm not allowed to tell....


372.5So that's why there's so many #'s!GIDDAY::GILLINGSa crucible of informative mistakesWed Dec 15 1993 00:3410
    re .4:     
    
       Aha! I see that string contains all 26 unique pieces of text in the
    output using a simple substitution cypher with some structural
    information indicated by "/". Some key letters "#"=>"e", "'"=>" " and 
    " "=>"a", "*"=>"f", "+"=>"t". The output consists of rearrangements of 
    the pieces generated using recursion (note all the occurrances of "main").
    My C isn't anywhere good enough to figure out the all the details.
    
    						John Gillings, Sydney CSC
372.6The end of an "error"DREGS::BLICKSTEINDown on that shreddin&#039; flo&#039;Fri Dec 17 1993 15:226
    I hereby declare that I will no longer take seriously any C programmer
    who claims that APL is "unreadable".
    
    ;-)
    
    	db