En el COMEFROM de la programación de computadora (o el VENIR de ) está una estructura obscura del flujo de control usada en algunos lenguajes de programación sobre todo como broma.
COMEFROM es áspero el contrario INDICADO en que puede llevar el estado de la ejecución de cualquier punto arbitrario en código una declaración de COMEFROM. El punto en el código donde sucede la transferencia del estado se da generalmente como parámetro a COMEFROM. Si sucede la transferencia antes o después de que la instrucción en el punto de transferencia especificado depende de la lengua usada. Dependiendo de la lengua usada, COMEFROMs múltiple que se refiere al mismo punto de salida puede ser inválido, ser no determinista, ser ejecutado en una cierta clase de prioridad definida, o aún inducir el ejecución concurrente paralela de o de otra manera según lo visto en Intercal roscado.
COMEFROM fue visto inicialmente en listas de instrucciones de lenguaje de ensamblaje de la broma (como “CMFRM "). Fue elaborado sobre en un artículo del proceso de datos automático por el R. Lorenzo Clark en el 1973, escrito en respuesta de la letra de s de Dijkstra Edsger a 'va a dañoso considerado declaración . COMEFROM fue ejecutado eventual en la variante de C-INTERCAL de programación esotérico INTERCAL del lenguaje junto con el “COMEFROM computado aún más obscuro”. Había también una oferta para “COMEFROM asignado” para el FORTRAN.
El 1 de abril de 2004, el Richie Hindle publicó una puesta en práctica de INDICADO y de COMEFROM para el lenguaje de programación del pitón. En la primera vista experimentada los programadores pudieron despedirla pues una broma cruda del tonto de abril que inventaba un sintaxis extraño para persuadir a principiantes que estas declaraciones existen en pitón, pero de hecho era una broma mucho más sutil en los programadores experimentados como el sintaxis es válido y la puesta en práctica que trabajaba completamente (apenas no prevista para el uso).
Aunque COMEFROM esté sintácticamente y semántico válido, y capaz del reemplazo INDICADO en algunos programas, es considerablemente más difícil visualizar en diseño y realmente el instrumento de programa en un lenguaje de programación. El uso sabido más práctico de a COMEFROM-como la estructura está como punto de desempate durante el depuración . Una puesta en práctica de FORTRAN lo incluyó, bajo el nombre " AT", como de ayuda a la depuración, con advertencias calamitosas contra usarlo en código de la producción. Además, muchas CPU modernas tienen ayuda del hardware para los puntos de desempate.
Algunos elementos de programado Aspecto-orientado se han comparado a la declaración de COMEFROM.
Lo que sigue es un ejemplo de un programa en un dialecto hipotético del BASIC con el " COMEFROM" en vez de " GOTO". Un ejemplo real en el INTERCAL sería demasiado difícil de leer.
10 COMEFROM 40 " ENTRADO 20; ¿CUÁL ES SU NOMBRE? " ; A$ " de 30 IMPRESIONES; HOLA, " ; A$ 40 REM
El programa (hipotético) trabaja pidiendo al usuario su nombre, entonces saludándolos con el mismo nombre, y continuando de nuevo. El " de la instrucción; REM" en línea 40 es simplemente un Noop - el " COMEFROM" la declaración sobre la línea 10 causa una rama de nuevo a esa línea cuando la ejecución alcanza la línea 40, sin importar su contenido.
Un ejemplo completamente runnable en pitón con el módulo indicado del de la broma instaló (que utiliza los ganchos de la depuración a la ejecución de programa de control) parecer esto:
de comefrom indicado de la importación, etiqueta comefrom .repeat ¿nombre = raw_input (“cuál es su nombre? ") si nombre: " de la impresión; Hello", nombre etiqueta .repeat " de la impresión; ¡Adiós! "
LCNTR=42; HACER x HASTA EL LCE; /* COMEFROM x, a menos que el contador de lazo sea cero * F12=F0*F4, F8=F8+F12, F0=dm (I0, M3), F4=pm (I8, M9); SI NZ dm (I2, M2) = F12; SI ZF dm (I2, M2) = F1; x: R2 = R3 + 76; /* el " de la etiqueta; x" no existe en el código automático *
Observar que la condición de la terminación del lazo, aquí especificada como LCE (contador de lazo expirado), se puede fijar a otros valores incluyendo siempre-verdadero y siempre-falso. Con una condición siempre-verdadera, tenemos un COMEFROM genuino. El hardware apoya hasta seises simultáneamente COMEFROMs activo.
en la semántica de COMEFROM.
Acción en una distancia
.
| Random links: | Madisonburg, Pennsylvania | Academia de Ciencias polaca | Efecto de enero | Castillo de Rowland | Wasis Diop |