KOMME AUS

In Computer-Programmierung, comefrom ist eine obskure Kontrollflussstruktur in einigen Programmiersprachen verwendet, die ursprünglich als Witz. ist in etwa entgegengesetzt, daß sie den Ausführungszustand von jedem beliebigen Punkt im Code auf eine Erklärung zu nehmen.

Der Punkt im Code, wo die Zustandsübertragung geschieht in der Regel als Parameter angegeben. Ob die Übertragung geschieht vor oder nach dem Unterricht an der angegebenen Übergabestelle ist abhängig von der verwendeten Sprache. In Abhängigkeit von der verwendeten Sprache, können mehrere s Referenzierung der gleichen Ausgangspunkt unwirksam sein, nicht-deterministisch, in einer Art von definierten Priorität ausgeführt werden, oder auch parallel zu induzieren oder anderweitig gleichzeitige Ausführung wie in Threaded Intercal gesehen.

Ein einfaches Beispiel für einen "" Anweisung ist eine Bezeichnung, die als wirkt "Falltür". Wenn die Ausführung von Code die Beschriftung erreicht hat, wird die Steuerung an die Anweisung nach dem übergeben. Dies kann auch bedingt sein, Übergeben der Steuerung nur dann, wenn eine Bedingung erfüllt ist, analog zu einem GOTO in einer IF-Anweisung. Der Hauptunterschied von GOTO ist, dass GOTO hängt nur von der lokalen Struktur des Codes, während comefrom ist abhängig von der globalen Struktur - ein GOTO überträgt Steuer, wenn es eine Zeile mit einem GOTO-Anweisung erreicht, während comefrom erfordert das Scannen des gesamten Programms oder Umfang zu sehen, ob irgendwelche comefrom Aussagen sind in ihrem Umfang für die Linie, und dann überprüft, wenn eine Bedingung getroffen wird. Der Effekt davon ist in erster Linie, um die Fehlersuche äußerst schwierig, da gibt es keinen Hinweis in der Nähe der Linie oder Etikett in Frage, die auf mysteriöse Weise zu einem anderen Punkt des Programms zu springen kontrollieren - man muss das gesamte Programm zu scannen, um zu sehen, ob irgendwelche comefrom Aussagen verweisen, dass Linie oder Etikett vorzeigen.

Debugger Haken können verwendet werden, um einen comefrom Rechnung zu implementieren, wie in der humorvollen Python goto-Modul werden; siehe unten. Dies kann auch mit der gcc-Funktion "asm goto", wie durch den Linux Kernel Konfigurationsoption CONFIG_JUMP_LABEL verwendet implementiert werden. A no-op hat seine Position gespeichert, um durch einen Sprung zu einer ausführbaren Fragment ersetzt werden, die an ihrem Ende wieder die Anweisung nach dem No-op.

Geschichte

 wurde zunächst in Listen der Witz Assembler-Anweisungen zu sehen. Es wurde bei der in einem Datamation Artikel von R. Lawrence Clark im Jahr 1973 als Reaktion auf Edsger Dijkstra-Brief geschrieben erarbeitet Sprunganweisung als schädlich. Comefrom wurde schließlich in der C-INTERCAL Variante der esoterische Programmiersprache INTERCAL zusammen mit dem noch obskurer "berechnet" implementiert. Es gab auch Vorschläge für Fortran 'zugewiesen' und eine '' Schlüsselwort.

Am 1. April 2004 veröffentlichte Richie Hindle eine Implementierung von beiden und für die Programmiersprache Python. Obwohl er am April Fools 'Day freigesetzt und nicht für schwere Gebrauch bestimmt sind, ist die Syntax gültig ist und die Umsetzung vollständig funktioniert.

Praktische Anwendungen

Beispiele

Das Folgende ist ein Beispiel für ein Programm in einem hypothetischen BASIC-Dialekt mit "" anstelle von "".

Dieses Programm funktioniert, indem er den Benutzer nach ihren Namen, sie mit dem gleichen Namen grüßen, und im ganzen anhalt erneut. Die Anweisung "" auf der Leitung 40 ist einfach eine NOP der "" Anweisung in Zeile 10 bewirkt eine Rückverzweigung zu dieser Linie, wenn die Ausführung erreicht die Leitung 40, unabhängig von seinem Inhalt.

Ein voll lauffähigen Beispiel in Python mit dem Witz-Modul installiert sieht so aus:

Dies ist eine Implementierung in Ruby der Intercal KOMMEN Aussage.

Einige Beispiele für die Debug-Paket Merkmal der OS / 360-Fortran-Compiler G:

Im Beispiel 1 werden die Werte der SOLON GFAR und Ewell untersucht, da sie bei Beendigung der Anweisung 10. Die AT-Anweisung waren anzeigt Anweisung 11.

In Beispiel 2, werden alle Werte der STOCK angezeigt, wenn Rechnung 35 angetroffen wird.

In Beispiel 3 beginnt Tracing auf Statement-10, auf Statement-20, das Aufspüren Haltestellen, während die Schleife ausgeführt wird, und nimmt nach der Schleife. Tracing Anschläge kurz vor Anweisung 30 ausgeführt wird.

Hardware-Implementierung

Das SHARC DSP unterstützt eine Anweisung für do..while-Schleifen vorgesehen ist, ist, dass im Wesentlichen ein. Beispiel:

Beachten Sie, dass die Schleifenabbruchbedingung, hier angegeben wird, kann auf andere Werte wie immer wahr und immer false gesetzt sein. Mit einen stets wahren Zustand, wir haben eine echte. Die Hardware unterstützt bis zu sechs gleichzeitig aktiv s.

Eine ähnliche Funktion existiert in Microchip dsPIC für Schleifen durch die "DO" Montageanleitung zur Verfügung gestellt. Seine unterbrechbare und trivial Verschachtelung geht bis zu einer Ebene um 5 Ebenen in Software.

(0)
(0)
Kommentare - 0
Keine Kommentare

Fügen Sie einen Kommentar

smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile smile smile smile smile
smile smile smile smile
Zeichen übrig: 3000
captcha