The cover was generated by executing 87 101 COVER 1979, with #IO=1. (The COVER function is listed below.) The phrases "APL79" and "#PP" fall out of the random number sequence without being included in the phrase list. (The character list in variable A was no doubt carefully ordered to arrange this.) The "HÄR TALAS APL", with the A in HAR overstruck with an umlaut, is built using a dedicated line of code that imbeds a backspace (#TC[#IO]) in the output. Several of the phrases have APL symbols adjacent to them in the list. These symbols, which don't occur in the random character list, are all unused (or obsolete) in 1979-vintage APL. The timestamp from when the program was run appears on the last line (clipped in my Part 1, but visible on Part 2). When you run COVER, your timestamp will probably appear in a different position because it doesn't have the same number of characters as the 1979 timestamp. But, because the timestamp was thoughtfully put at the bottom, only the last line will be different from the back cover.
Arthur Anger, the APL79 Proceedings Editor, identified Paul Penfield as the author of the program. Paul had this to say:
Your analysis of the back cover is essentially correct and complete. The only error I noted is that the phrase WS LOCKED does not, as you say, start with a space but instead with an underscore. [Mistake now corrected here.] The characters that accompanied some of the phrases were those that could appear in character arrays but had no semantic or syntactic meaning otherwise. The underscore in 1979 had that property, along with the up-shoe, alpha, I-beam, etc.
You are correct in noting that the phrase APL79 was produced by arranging the order of the vector A. It was then noticed that by coincidence two P's ended up together. It was then a struggle to decide whether to create another phrase by moving the quad symbol in the vector A, or leave things alone and use the PP as a signature.
And he named the languages as follows:
APL SPOKEN HERE English HER TALES APL Danish AQUI SE HABLA APL Spanish HER SNAKKES APL Norwegian ICI ON PARLE APL French HÄR TALAS APL Swedish HIER SPRICHT MAN APL German QUI SI PARLA APL Italian APL HIC DICITUR Latin!
The COVER function and PHRASES variable are listed below. (See APL-ASCII Transliteration if you don't know about the {keywords}.) Note that spacing in the function is significant. If your APL alters the spacing, the symbols surrounding the function listing in the output will be incorrect. The program assumes that the result of #CR is left-justified. If your function has blanks in the first column, you may be able to eliminate them by executing:
{del}A COVER R;L;P;W;#RL [1] #RL{<-}R [2] W{<-}A[#IO+1] [3] P{<-}1{drop}{rho}PHRASES [4] P{<-}((1-A[#IO]-1{take}{rho}R{<-}#CR 'COVER'),P){take}(P{take}{+ +}{format}#RL),[#IO](P{take}{format}#IO),[#IO](P{take}{format}A),[#IO] {+ +}PHRASES,[#IO] P{take}{format}#TS [5] A{<-}'{domino}+{delta}{times}{divide}{ceiling}{floor}*{ln}|!?{+ +}{pitimes}~^{or}{nand}{nor}{/=}{<=}){>=}]<[,{represent};=({rho}79''{+ +}{take}.{quad}{gradedown}P{slashbar}{quotequad}{backslashbar}{reverse}{+ +}{reversebar}{transpose}{epsilon}{<-}{basevalue}>{format}{execute}\:{+ +}{jot}/{del}-{deltilde}{lamp}{->}L{iota}{drop}{gradeup}A' [6] (2+?W-4+L){rotate}A[?(W-L){rho}{rho}A],(L{<-}+/{or}\{reverse}P[#IO;]{+ +}{/=}' '){take}P[#IO;] [7] {->}(1<?1{take}{rho}P{<-} 1 0 {drop}P)/#LC-1 [8] L{<-}+/^\{reverse}' '=R [9] {neg}4{rotate}((1{take}{rho}R),W){take}L{rotate}((-L){rotate}R),A[?({+ +}(1{take}{rho}R),W){rho}{rho}A] [10] (-?15){rotate}'HA',#TC[#IO],'{each}R TALAS APL',A[?(W-13){rho}{rho}A] [11] (2+?W-4+L){rotate}A[?(W-L){rho}{rho}A],(L{<-}+/{or}\{reverse}P[#IO;]{+ +}{/=}' '){take}P[#IO;] [12] {->}(~0{epsilon}{rho}P{<-} 1 0 {drop}P)/#LC-1 {del} {del}. PHRASES{<-}68 48{rho}'SIGPLAN\STAPL{enclose} {+ +} INDEX ERROR APL SPOKEN{+ +} HERE{pick} #AI {+ +} )FNS NOT S{+ +}AVED, THIS WS IS CLEAR WS )LIB {+ +} SYSTEM ERROR HER T{+ +}ALES APL WS FULL {+ +} #SVO )CLEA{+ +}R SYNTAX ERROR{upshoe} {+ +} APL QUOTE QUAD {+ +} #WA NOT GROUPED, NAME IN U{+ +}SE )SYMBOLS {+ +} AQUI SE HABLA APL ENTRY ERROR {+ +} #NC {+ +} INTERFACE QUOTA EXHAUSTED )OFF {+ +} #LX {+ +} NONCE ERROR )VARS {+ +} HER SNAKKES APL {+ +} INCORRECT SIGN-ON #AV {+ +} DEFN ERROR{omega} {+ +} )GRPS #SVC {+ +} IMPROPER LIBRARY REFERENCE {+ +} ASSOCIATION FOR COMPUTING MACHINERY INTERRUPT {+ +} {downshoe}ICI ON PARLE APL {+ +} SYMBOL TABLE FULL{ibeam} #{+ +}DL )MSG {+ +} CLEAR WS #{+ +}NL )SAVE {+ +} IMPLICIT ERROR #{+ +}EX )SI {+ +} DOMAIN ERROR H{+ +}IER SPRICHT MAN APL )CONTINUE {+ +} #SVQ L{+ +}ENGTH ERROR )OPRN {+ +} #CT S{+ +}I DAMAGE )WSID {+ +} NO SHARES{alpha} {+ +} #FX COPYRIGHT 1979 ACM {+ +} WS NOT FOUND {+ +} QUI SI PARLA APL #HT {+ +} RANK ERROR {+ +} )OFF HOLD INCORRECT COMMAND {+ +} #PW {+ +} VALUE ERROR APL HIC DICITUR {+ +} _WS LOCKED {+ +} #SVR APL79 ROCHESTER, NE{+ +}W YORK, MAY 30--JUNE 1, 1979!'