|
|
COME FROM
<programming> 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.L. 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,
multitasking (or nondeterminism) 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 labelled 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.
SCL on VME mainframes has a similar language construct
called "whenever", used like this:
whenever x=123345 then S;
Meaning whenever variable x reached the value 123345 then
execute statement S.
"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.
[Jargon File]
(1998-04-19)
Try this search on OneLook / Google
Nearby terms:
combinator « combinatory logic « Comdex « COME FROM » COMIS » COMIT » Comite Europeen des Postes et Telecommunications
This article was derived from the Free Online Dictionary of Computers and is available under ther terms of the GNU Free Documentation License.
Deluxe Multimedia BibleDeluxe Multimedia Bible Essential Bible texts including the Bible in Spanish, references and multicultural religious writings, audio passages, religious clip art, screensavers, and more. Windows 98/ME/2000/XP More ...
Cigar Pro2 256MB USB 2.0 Flash DriveCigar Pro2 256MB USB 2.0 Flash Drive ** Cigar Pro2 256MB USB 2.0 Flash Drive **This Cigar Pro 2 Flash Drive offers the convenience and reliability for fast data transfers and storage anywhere!It features 256 MB capacity and a USB 2.0 interface. Othergreat features include Secure password protection for added security, automatic zip/unzip option to optimize data storage, and comes in a transparent design!General Features:- Transparent design- 256 MB capacity- USB 2.0 interface (USB 1.1 compatible)- Bootable from USB- Secure password protection for added security- Automatic zip/unzip option- 10+ years data retention- Advance email send/receive capability- Plug and Play- Shock resistant- Bus Powered- PC and Mac compatible- Lightweight and easy to carryRetail Package Includes:- Cigar Pro 2 256 MB USB 2.0 Flash Drive Compatibility/Requirements/Disclosures:** Requirements *** PC Requirements:* Windows 98SE/ME/2000/XP * Available USB port** Macintosh Requirements:* Mac 10.1 or higher* Available USB port More ...
Survival: The Ultimate ChallengeSurvival: The Ultimate Challenge Scared, injured and stranded in the middle of nowhere, the survivors hope for rescue. You need to guide them to work together and meet everyone's needs. In the wild, you'll need to make critical decisions that will affect everyone's well-being. Are you ready for the Ultimate Challenge? Windows 95/98/ME/XP More ...
Intel Pentium 233MHz MMX Socket 7 CPUIntel Pentium 233MHz MMX Socket 7 CPU ** Intel Pentium 233MHz CPU with MMX **- Pentium 233MHz CPU with MMX Multimedia Extentions- Socket 7- No Heatsink/Fan- CPU OnlyCompatibility/Requirements/Disclosures:** Requirements **Socket 7 Heatsink & Fan* Motherboard that supports 233MHz MMX Pentium CPU More ...
ZapperZapper Available: Rugged individualist, outdoorsy type, cynical. Physically fit with springy reflexes. Into avoiding trouble and self-defense using electrified antennae. Yellow. Looking for adventure with the right person. This is One Wicked Cricket. Windows 98/ME/2000/XP More ...
RF Combo Wireless Keyboard + Optical MouseRF Combo Wireless Keyboard + Optical Mouse ** Qtronix Gemini-M1 Optical Wireless Keyboard & Optical Wireless Mouse PS/2 - Black/Silver **Free up the clutter on your desk from wires. This wireless keyboard and mouse combo will give you the freedom and organization you've always wanted in a stylish black/silver finish. Compatible with Windows 98SE/2000/ME/XP. PS/2 connection. Batteries included!Keyboard Features:- Radio frequency technology and 256 ID- 16 Multimedia Control Hotkeys- Compact size design- Membrane fashion design- Smart power saving - PS/2 Connector Mouse Features:- Radio frequency technology and 256 ID- Mini size design- Smart power saving- 3 buttons and wheel mouse- For left or right hand Specifications:- Compatible OS: Win 98SE/2000/ME/XP- Switch life: 1,000,000 cycle lifePackage Contents: - Scorpius Keyboard- Lynx Mouse- Receiver- 5 AA Batteries- User's Guide More ...
|