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 harmf
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.
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 harmf
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.
Related:
- Quote #36
"FORTRAN's DO statement is far scarier than GOTO ever was -
nothing can match the sheer gibbering horror of... - indent style n.
[C, C++, and Java programmers] The rules
one uses to indent code in a readable fashion.
There are four major C indent styles, described... - fall through v.
(n. `fallthrough', var.
`fall-through') 1.
To exit a loop by exhaustion, i.e., by having fulfilled... - FORTRAN
FORTRAN is the programming Language considered by many to be the
natural successor to LISP and Prolog for A.I.
research. Its advantages include: 1. it is very efficient... - quantifiers
In techspeak and jargon, the standard metric
prefixes used in the SI (Système International) conventions for
scientific measurement have dual uses.
With units of time or things that come in powers... - Pascal n.
An Algol-descended language designed by
Niklaus Wirth on the CDC 6600 around 1967-68 as an instructional
tool for elementary programming.
This language, designed primarily to keep students... - bug n.
An unwanted and unintended property of a program or
piece of hardware,
esp. one that causes it to malfunction. Antonym... - back door n.
[common] A hole in the security of a
system deliberately left in place by designers or maintainers.
The motivation for such holes is not always sinister... - boot v.,n.
[techspeak; from `by one's bootstraps'] To
load and initialize the operating system on a machine.
This usage is no longer jargon (having passed into...
From the same category:
- Programmer's Cheer
"Shift to the left! Shift to the
right!
Pop up, push down! Byte! Byte! Byte!" A joke so... - bignum /big'nuhm/ n.
[common; orig. from MIT MacLISP]
1.
[techspeak] A multiple-precision computer representation... - green bytes n.
(also `green words') 1. Meta-information
embedded in a file,
such as the length of the file or its name; as opposed... - cookbook n.
[from amateur electronics and radio] A book of small
code segments that the reader can use to do various magic
things in programs.
One current example is the "PostScript... - workaround n.
1. A temporary kluge used to bypass,
mask, or otherwise avoid a bug or misfeature in some...
