COME FROM
\kˈʌm fɹɒm], \kˈʌm fɹɒm], \k_ˈʌ_m f_ɹ_ɒ_m]\
Sort: Oldest first
-
A semi-mythical language construct dualto the "go to"; "COME FROM" would cause the referencedlabel to act as a sort of trapdoor, so that if the programever reached it, control would quietly and automagically betransferred to the statement following the "COME FROM"."COME FROM" was first proposed in R.L. Clark's "A LinguisticContribution to GOTO-less programming", which appeared in a1973 Datamation issue (and was reprinted in the April 1984issue of "Communications of the ACM"). This parodied thethen-raging "structured programming" holy wars (seeconsidered harmful).Mythically, some variants are the "assigned COME FROM" and the"computed COME FROM" (parodying some nasty control constructsin Fortran and some extended BASICs). Of course,multitasking (or nondeterminism) could be implemented byhaving more than one "COME FROM" statement coming from thesame label.In some ways the Fortran "DO" looks like a "COME FROM"statement. After the terminating statement number/"CONTINUE"is reached, control continues at the statement following theDO. Some generous Fortrans would allow arbitrary statements(other than "CONTINUE") for the statement, leading to exampleslike: DO 10 I=1,LIMIT C imagine many lines of code here, leaving the C original DO statement lost in the spaghetti... WRITE(6,10) I,FROB(I) 10 FORMAT(1X,I5,G10.4)in which the trapdoor is just after the statement labelled 10. (This is particularly surprising because the label doesn'tappear to have anything to do with the flow of control atall!)While sufficiently astonishing to the unsuspecting reader,this form of "COME FROM" statement isn't completely general.After all, control will eventually pass to the followingstatement. The implementation of the general form was left toUnivac Fortran, ca. 1975 (though a roughly similar featureexisted on the IBM 7040 ten years earlier). The statement"AT 100" would perform a "COME FROM 100". It was intendedstrictly as a debugging aid, with dire consequences promisedto anyone so deranged as to use it in production code. Morehorrible things had already been perpetrated in productionlanguages, however; doubters need only contemplate the"ALTER" verb in COBOL.SCL on VME mainframes has a similar language constructcalled "whenever", used like this: whenever x=123345 then S;Meaning whenever variable x reached the value 123345 thenexecute statement S."COME FROM" was supported under its own name for the firsttime 15 years later, in C-INTERCAL (see INTERCAL,retrocomputing); knowledgeable observers are still reelingfrom the shock.
By Denis Howe
Word of the day
Dopamine Acetyltransferase
- An enzyme that catalyzes the of groups from acetyl-CoA to arylamines. They have wide specificity for aromatic amines, particularly serotonin, and can also catalyze acetyl transfer between arylamines without CoA. EC 2.3.1.5.