"Funny" Observations From (PERL) Programming Docs...

  • Thread starter Thread starter sbrothy
  • Start date Start date
  • Tags Tags
    Funny Programming
AI Thread Summary
The discussion revolves around the humorous and perplexing aspects of programming, particularly focusing on Perl documentation that suggests a flag for code optimization which ironically introduces bugs. Participants share their experiences with obfuscated code, highlighting the International Obfuscated C Code Contest, which showcases extremely convoluted C programs, including the Toledo Nanochess chess engine, known for its brevity and complexity. The conversation also touches on the existence of unconventional programming languages like Brainfuck and the idea of writing intentionally unmaintainable code, emphasizing the playful side of programming. Overall, the thread reflects a shared appreciation for the quirks and challenges in coding across various languages.
sbrothy
Gold Member
Messages
1,099
Reaction score
985
So here I am slaving over Perl documentation (For my own pleasure I'm sad to say. I regard programming as LEGO for grownups) and I'm finding weird and funny things like:

o - pretend to optimize your code, but actually introduce bugs

I mean what is that about?

And perhaps less obvious:

[making] classes more readable:

Code:
/ [d-e g-i 3-7]/xx
/[ ! @ " # $ % ^ & * () = ? <> ' ]/xx

may be easier to grasp than the squashed equivalents:

Code:
/[d-eg-i3-7]/
/[!@"#$%^&*()=?<>']/

Well yes, it might :)

You have any even more crazy or funny examples from the amount of information I'm sure you people plow through on a daily basis? No matter the language.

Regards.
 
Technology news on Phys.org
sbrothy said:
You have any even more crazy or funny examples from the amount of information I'm sure you people plow through on a daily basis? No matter the language.
Ha! There is a whole contest called "The International Obfuscated C Code Contest"
https://www.ioccc.org/ Reading the winning entries can melt your brain.

You can also find examples on Wikipedia.
https://en.wikipedia.org/wiki/International_Obfuscated_C_Code_Contest
Here's one.

Toledo Nanochess is a chess engine developed by Mexican Oscar Toledo Gutiérrez, a five-time winner of the IOCCC. In accordance with IOCCC rules, it is 1255 characters long. The author claims that it is the world's smallest chess program written in C.

The source code for Toledo Nanochess and other engines is available.[13] Because Toledo Nanochess is based on Toledo's winning entry from the 18th IOCCC (Best Game[14]), it is heavily obfuscated.[15]

On February 2, 2014, the author published the book Toledo Nanochess: The commented source code, which contains the fully commented source code.[16]

As of February 7, 2010, it appears to be one of only two chess engines written in less than 2 kilobytes of C that are able to play full legal chess moves, along with Micro-Max by Dutch physicist H. G. Muller. In 2014 the 1 kilobyte barrier was broken by Super Micro Chess[17] – a derivative of Micro-Max – totaling 760 characters (spaces and newlines included).[18] There is also a smaller version of Toledo's engine, the Toledo Picochess, consisting of 944 non-blank characters.
Source code excerpt

B,i,y,u,b,I[411],*G=I,x=10,z=15,M=1e4;X(w,c,h,e,S,s){int t,o,L,E,d,O=e,N=-M*M,K
=78-h<<x,p,*g,n,*m,A,q,r,C,J,a=y?-x:x;y^=8;G++;d=w||s&&s>=h&&v 0,0)>M;do{_ o=I[
p=O]){q=o&z^y _ q<7){A=q--&2?8:4;C=o-9&z?q["& .$ "]:42;do{r=I[p+=C[l]-64]_!w|p
==w){g=q|p+a-S?0:I+S _!r&(q|A<3||g)||(r+1&z^y)>9&&q|A>2){_ m=!(r-2&7))P G[1]=O,
K;J=n=o&z;E=I[p-a]&z;t=q|E-7?n:(n+=2,6^y);Z n<=t){L=r?l[r&7]*9-189-h-q:0 _ s)L
+=(1-q?l[p/x+5]-l[O/x+5]+l[p%x+6]*-~!q-l[O%x+6]+o/16*8:!m*9)+(q?0:!(I[p-1]^n)+
!(I[p+1]^n)+l[n&7]*9-386+!g*99+(A<2))+!(E^y^9)_ s>h||1<s&s==h&&L>z|d){p=n,O
=m?*g=*m,*m=0:g?*g=0:0;L-=X(s>h|d?0:p,L-N,h+1,G[1],J=q|A>1?0:p,s)_!(h||s-1|B
-O|i-n|p-b|L<-M))P y^=8,u=J;J=q-1|A<7||m||!s|d|r|o<z||v 0,0)>M;O=o;p=r;m?
*m=*g,*g=0:g?*g=9^y:0;}_ L>N){*G=O _ s>1){_ h&&c-L<0)P L _!h)i=n,B=O,b=p;}N=L;}
n+=J||(g=I+p,m=p<O?g-3:g+2,*m<z|m[O-p]||I[p+=p-O]);}}}}Z!r&q>2||(p=O,q|A>2|o>z&
!r&&++C*--A));}}}Z++O>98?O=20:e-O);P N+M*M&&N>-K+1924|d?N:0;}main(){Z++B<121)*G
++=B/x%x<2|B%x<2?7:B/x&4?0:*l++&31;Z B=19){Z B++<99)putchar(B%x?l[B|16]:x)_
x-(B=F)){i=I[B+=(x-F)*x]&z;b=F;b+=(x-F)*x;Z x-(*G=F))i=*G^8^y;}else v u,5);v u,
1);}}
 
I knew about the obfuscated C contest. I think I even made a meager contribution to an unofficial obfuscated C++ contest once. The chess thingy is new to me though. There are a lot of weird programing languages out there. Like brainfuck .

I was more nonplussed by (PERL) documentation admitting that it has a flag for optimizing your code which admittedly does the opposite!
 
sbrothy said:
I think I even made a meager contribution to an unofficial obfuscated C++ contest once.
My co-workers often enter my code to that contest.
 
  • Haha
  • Wow
Likes anorlunda, berkeman and sbrothy
Vanadium 50 said:
My co-workers often enter my code to that contest.

I actually found the thread:

C++ fun: obfuscated "Hello world!"

Mine is #59. Not exactly genius material but then again it was written on company time. :)

BTW: I found a link to Writing Unmaintainable Code in my footer. Off course it's purpose is to make people avoid these pitfalls. It's written, as the author says upfront, "tongue in cheek".
 
Dear Peeps I have posted a few questions about programing on this sectio of the PF forum. I want to ask you veterans how you folks learn program in assembly and about computer architecture for the x86 family. In addition to finish learning C, I am also reading the book From bits to Gates to C and Beyond. In the book, it uses the mini LC3 assembly language. I also have books on assembly programming and computer architecture. The few famous ones i have are Computer Organization and...
I have a quick questions. I am going through a book on C programming on my own. Afterwards, I plan to go through something call data structures and algorithms on my own also in C. I also need to learn C++, Matlab and for personal interest Haskell. For the two topic of data structures and algorithms, I understand there are standard ones across all programming languages. After learning it through C, what would be the biggest issue when trying to implement the same data...
Back
Top