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.
Footnotes:
(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.