Tuesday, February 7, 2017

COMPILER CRAP RECAP RAP


My side-life as a Christian rapper, MC Prophet, has finally debuted. This week, the slick lyricist in me took over and created a rap song to recap the compiler facts we've attacked.

soundcloud

Lyrics:
This journey started out in computer science with mickel
He taught about compilers which were cool like icicles 
All that knowledge just flowing down, flowing down trickle trickle
It tickled my mind like a fuzzy pickle got to earn them nickels

Uh, what even's a compiler huh?
It's just a program, microsoft word, word
It takes your code, translates a bit
ni hao to hi, caca to ______

The parts of the compiler are easy to tell
Just look at my blog post you dumb-bell
There's the pre processor compiler assembler and linker
(Then the) loader and memory we're done hook line and sinker

Chorus
Uh, compilers are the very best
Reppin' from the wood of west
Didn't study for the test (what?)
Doesn't matter cuz im blessed

The tools I use for compiling are bison and flex
Hexidecimal, lexical, tex mex, regex
Now I'm learning how to compile LC3
Stands for Little Computer and it's online for free

Chorus
Uh, compilers are the very best
Reppin' from the wood of west
Didn't study for the test
Doesn't matter cuz im blessed

The Imagination of Computer Scientists



As I've worked with various computer software, I've realized that computer scientists are embarrassingly dorky in many ways. Most directly, I've observed this through Yacc, the syntax analyzer I have been working with. Its acronym means Yet Another Compiler Compiler, alluding to the fact that it compiles code to make compilers. This amusing and endearing name reminded me of similar naming schemes used by other computer scientists.


Researching amusing computer science names led me into the world of acronyms and naming schemes. I learned about recursive acronyms, in which the expansion of the acronym contains the acronym itself. 

GNU = GNU's not Unix!

While GNU's amusing acronym was its initial name, most of the funny names I found were created later on, as humorous takes on the acronym. These are called backronyms, when the expanded name is created from an existing acronym.

Original                                Acronym        Recursive backronym!
Mash Until No Good ==> MUNG ==> MUNG Until No Good.
WINdows Emulator  ==> WINE   ==> WINE Is Not an Emulator
Personal Home Page ==> PHP      ==> PHP: Hypertext Preprocessor

These computer scientists actually kill me. They really do. Anyways, I was inspired to create a couple of my own acronym ideas after researching these hilarious names.

BANANA = BANANA: A Nonsensical And Natural Acronym
POTATO = Population Of Teens All Too Overweight
COMPUTER = Can Only Manage Programs Under The Expected RAM 
-RAM is Random Access Memory
NOODLE = Normal Or Ordinary Dinner Leftists Eat

Sources:
https://en.wikipedia.org/wiki/Backronym
https://en.wikipedia.org/wiki/Recursive_acronym