Eric Siegel wrote and performed this song when he was a computer science professor at Columbia University, 1997 - 2000.The verses are sung as a patter, and the chorus is a love ballad; harpsicord accompaniment.
Verse 0: (discreteness and bits)
My genetics are a digital instruction set
so I've been perpetually perplexed since the very first day we met.
Your syntactic representation is quite a bit eccentric;
you are the very model of a modern major general electric.
Everything in life is analog shades of gray,
but in the analogous world of computation, you're discrete all the way.
The basis for all information will be described in a bit.
Your hot and cold disposition makes me feel like moaning.
I like counting powers of 2; when I get enough I'll quit.
Our love is exponential; it just keeps on growing.
The multitude of combinations of your on-off switches,
are these combinations really safe? I'll overlook your glitches.
One byte has 8 bits, 256 values are copasetic.
Wax off, waxing on, this byte's a bit poetic.
It's so hectic with your flood of details I'm afraid I'll sink,
so I'll hope and pray and think until my brain is on the brink, but
There's a logical explanation in my mind,
though sometimes the right 4-byte words are hard to find.
When I look inside your computer brain, its hard to understand the design,
but I'd love to build a computational device to represent thoughts like mine.
Verse 1: (boolean logic and truth tables)
I feel a magic spark between you and me,
I call it love, but they call it static electricity.
I am shocked by your dynamicism; your changing ways aren't static;
I drew the line with geometry; time takes a different tactic.
AND, OR, NOT, they help a lot to build a boolean expression.
These three operations combine for my boolean function obsession.
This function functions as a condition to control your algorithmic duties;
it also will help me build you up in my mind and design your circuitries.
The truth table lists each output so I can lubricate my robot.
This table o' truth takes more grease than a Bucket o' Chicken... not.
Parentheses will disambiguate what I mean and un-confound it.
My continuous love is not discrete, no ANDs, IFs, buts about it.
My parity may seem odd, but my self-reflection never halts:
This statement is not not not not not not not not not false.
My love for you is not logical; I hope this song's pedagogical.
My true love will not toggle, but if you kiss a prince-turned-frog it will.
There's a time and place for logical thought formation,
but in my form of love, I love my information.
Love conquers all obstacles; but logic gives me good vibrations.
Verse 2: (logic gates and digital circuits)
Transistor, you're not my sister, call me mister, type 'til I blister.
Show a gate with its shape to separate my mental state
from the details of design, glad you're mine, you're doing fine,
but the beauty of design is in the eye of the beholder.
Scully and Molder investigate with logical deduction
an electronically implemented implement of construction
to assess its function and they find its fine and dandy.
Playing Quake you're doing great and you compare for equality.
You're no less AND you're no more; you're exactly the same as me.
So my 1-CE say's "true" like it was designed to be,
and now I treat it like a building block and use it carefreely,
to build a bigger circuit to perform an n-CE.
That's so cool what I learn in school, now I "NOT" it for exclusive OR;
You love me XOR you love me NOT, do you find my sappy song a bore?
For my next great feet I'll take another step of abstraction:
I'll design a 1-bit ADDer with some big-time circuit action.
Now forget how it works, but remember what it does
and build up a full-adder with relative easiness.
Your analytical prowess makes me shiver;
you've got a CPU right where I've got a liver.
Love, information and algorithms are abstract and conceptual,
but with hardware organization implementation, "I wanna get physical,"
(says Olivia Newton-TRON)
Circuit is as circuit does; each circuit does one certain thing,
but I wanna build one flexible circuit that can do most everything.
You're every circuit in the world to me, your my IBM PC, my C3P0,
you're my ultimate servant, though you don't wash windows.
Don't be jealous of my transistor radio, just look at what you got;
don't be jealous of my TV or my toaster, you do everything they cannot.
You're all-purpose architecture can achieve any algorithm,
So you're music to my ears, you have me like Al Gore's Tipper has him.
You can enact my bank transaction and track my traffic violations,
and play my Frogger game, and make my Jurrasic movie actions.
We build a memory circuit so you recall what to do,
and furthermore you also get and put what to do it to.
The proof is in the pudding and the instructions are in the memory;
memory's dual-functionality allows you to be all that you can be,
John Von Neumann stipulated it so, so follow his advise, and don't spurn disco,
and you'll satisfy my needs 'cause "you don't have to be a star to be in my show."
Jean Claud Van Dam I'm not, ma'am, wham bam RAM don't send me SPAM, please.
Your chain-mail's very superstitious as I recall, but thanks for the memories.
Each location in memory has a memory address.
That address is the number used to find where data rests.
"All memory's created equally," said William Gates.
(But Microsoft consumers rank as low as big Bill states.)
Whatta ya do with yer CPU; ya gotta use yer noggin when you login.
Use your noodle; paint, don't doodle, Stinky's happy, "Fahrvegnugen!"
Each instruction is fetched from memory and executed by the processor,
a decoder's used to fetch it from RAM with a memory address register.
To execute the opcode a decoder selects the appropriate circuitries,
and the arithmetic logic unit uses a multiplexor to set the "outputies".
To decode a memory address or an opcode use the decoder from the
If you want a date() from my transistor sister you'll just have to ask her.
Your clock pulse will coordinate your multitude of actions.
Love megahertz real bad but you can calculate my fractions.
Your clock pulses a million times my heart rate, flip flop flip flip flop flip flop flop;
I'm in an infinite loop of love and it just won't stop stop.
Verse 4: (machine language)
I'm a savage enigma of the emotional human type,
but the devil is in your details and your bit is worse than your byte.
Your microprocessor is functioning at an optimum level;
Your Mail Daemon's Unix, it's not a devil.
Software's young forever although I am growing very old,
so I don't wanna hand you that same old line of code.
You speak the machine language of love, 3PO's little R2.
You're made by Apple; you're clockwork, orange you?
Whatever I tell you to do, I get a no-RISC guarantee,
because you're reliable and quick, although never quite happy.
There are special circuits designed for each possible encoded instruction;
You gotta follow my algorithm paying head to each condition.
I put these instructions in the form of special codes of 1s and 0s.
The code I know will make you go with the flow, my analytical hero.
You're an extension of myself, a fast, errorless me in the extreme,
you're a magical machine; you give me a license to dream.
Your digital design is fine for things that take me too long,
but when I plugged you in, I didn't mean to turn you on.
The instructions that you follow are small, precise and simple.
This little language is made of commands like LOAD, ADD, COMPARE and JUMPEQ.
Each machine language instruction causes several things to happen,
Like for ADD you've got to fetch a value, add it, and then put it back in.
This language is not friendly but can do algorithmic primitives like
SET, IF and REPEAT.
You can add a number multiple times for multiplication -- hey that's pretty neat!
So now you know how to manage memory's massive space.
The first computer I loved had 48 Kilobytes and no lowercase!
The past is gonna haunt us though you've improved over time,
'cause this year we're gonna party like it's 1899.
© 1998 Eric V. Siegel