Kiss Me, Cruel Fortran (II)



Song Info

Lyrics: Doctroid

Music: swt

Arrangement: Doctroid

Post production: Major Zed

Album: Aspartame Placebo

Xaonon, when he joined Interröbang Cartel, claimed to be the future author of a song called “Kiss Me, Cruel Fortran”, but to date he has not written such a song.

Sometime later swt, in a discussion of songs that switch between languages, pointed out the lack of songs that modulate between human and computer languages, and Xaonon opined that someone should do that in lyrics for “Kiss Me, Cruel Fortran”. Chris Reuter responded with some lyrics, and Doctroid responded with different ones — later, but unaware at the time of Chris’s.

swt wrote music for Doctroid's lyrics, and recorded them as a chiptune; Doctroid then recorded an arrangement of swt's music for synthesized piano with vocals by Doctroid. Major Zed worked on post-production, adding some subtle autotuning to Doctroid's attempts to stay on pitch and some synthesized backing vocals.


common man am I
but I’m willing to die
data weaves a spell
lures you into her hell
she’s a bleak mistress of a certain age
outlived her siblings on the binary stage[2]
oh she’ll bring you to joy and then she’ll fill you with rage[3]
come kiss me, come kiss me
cruel fortran
input your desire
on a telephone wire
go to her once again
the compiler of men
well she’s real and I’m not if I don’t declare[4]
and she’ll never point[5] but she’ll globally share[6]
you can state your case just don’t expect her to care[7]
come kiss me, come kiss me
cruel fortran
program for the end
gonna need a friend
format your demise
in the monitor’s eyes
if you curse again will she know what to do[8]
her numbers are numbers and they’re never true[9]
and she’ll cut you dead right after seventy-two[10]
come kiss me, come kiss me
cruel fortran


(In the following, “Fortran” refers to FORTRAN 4 and/or Fortran 77.)

[1] COMMON, DATA, INPUT, GOTO, PROGRAM, and FORMAT are all Fortran keywords.

[2] Well, most of them. Some people still use COBOL.

[3] Trust me on this.

[4] In the absence of any explicit declaration or IMPLICIT statement, variables whose names begin with the letters I through N (such as “I”) are integers and variables with names starting with other letters (such as “SHE”) are floating point, or in Fortran terms, REAL.

[5] Fortran doesn’t do pointers.

[6] Fortran has COMMON blocks for the management of more or less global variables.

[7] Fortran is case insensitive.

[8] Some implementations of Fortran permitted recursion, but it was not a language requirement.

[9] Unlike C, where logical expressions evaluate to 0 (false) or nonzero (true), Fortran has a separate LOGICAL data type whose two possible values are .TRUE. and .FALSE. You can’t say e.g. “IF (37) GOTO 100″ because 37 is not LOGICAL.

[10] Fortran statments use columns 1-5 for a statement number, column 6 for a continuation character, and columns 7-72 for the statement itself; anything past column 72 is ignored.