COME FROM

( n.)

   A  semi-mythical  language  construct  dual to the `go to'; COME FROM
   <label>  would  cause  the  referenced  label  to  act  as  a sort of
   trapdoor,  so  that  if  the  program  ever  reached it control would
   quietly and {automagically} be transferred to the statement following
   the  COME FROM. COME FROM was first proposed in R. Lawrence Clark's A
   Linguistic Contribution to GOTO-less programming, which appeared in a
   1973 {Datamation} issue (and was reprinted in the April 1984 issue of
   Communications of the ACM). This parodied the then-raging `structured
   programming' {holy wars} (see {considered harmful}). Mythically, some
   variants  are  the  assigned  COME  FROM  and  the computed COME FROM
   (parodying some nasty control constructs in FORTRAN and some extended
   BASICs).  Of  course,  multi-tasking  (or  non-determinism)  could be
   implemented  by  having more than one COME FROM statement coming from
   the same 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 the DO. Some generous FORTRANs
   would  allow  arbitrary  statements  (other  than  CONTINUE)  for the
   statement, leading to examples like:

      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 labeled 10. (This
   is  particularly  surprising because the label doesn't appear to have
   anything  to  do with the flow of control at all!) 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 following statement. The implementation of the
   general  form  was left to Univac FORTRAN, ca. 1975 (though a roughly
   similar  feature  existed  on  the  IBM  7040 ten years earlier). The
   statement  AT  100  would  perform  a  COME FROM 100. It was intended
   strictly  as  a  debugging  aid,  with  dire consequences promised to
   anyone  so  deranged  as  to use it in production code. More horrible
   things had already been perpetrated in production languages, however;
   doubters  need  only contemplate the ALTER verb in {COBOL}. COME FROM
   was  supported  under its own name for the first time 15 years later,
   in   C-INTERCAL  (see  {INTERCAL},  {retrocomputing});  knowledgeable
   observers are still reeling from the shock.

[glossary]
[Reference(s) to this entry by made by: {Datamation}]