Ereignis-gesteuerte Programmierung

In der Computerprogrammierung, Ereignis-gesteuerten Programmierung oder Ereignis-basierten Programmierung ist ein Programmierparadigma, in dem der Fluss des Programms durch Ereignisse z.B bestimmt wird. Sensorproduktionen oder Benutzerhandlungen (Maus-Klicks, Schlüsselpressen) oder Nachrichten aus anderen Programmen oder Fäden.

Ereignis-gesteuerte Programmierung kann auch als eine Anwendungsarchitektur-Technik definiert werden, in der die Anwendung eine Hauptschleife hat, die klar unten zu zwei Abteilungen geteilt wird:

  • das erste ist Ereignis-Auswahl (oder Ereignis-Entdeckung)
  • das zweite ist das Ereignis-Berühren.

In eingebetteten Systemen kann dasselbe mit Unterbrechungen statt einer ständig laufenden Hauptschleife erreicht werden; in diesem Fall wohnt der ehemalige Teil der Architektur völlig in der Computerhardware.

Ereignis-gesteuerte Programme können auf jeder Sprache geschrieben werden, obwohl die Aufgabe auf Sprachen leichter ist, die Abstraktionen auf höchster Ebene wie Verschlüsse zur Verfügung stellen. Einige einheitliche Entwicklungsumgebungen stellen Codegenerationshelfern zur Verfügung, die die meisten wiederholenden für das Ereignis-Berühren erforderlichen Aufgaben automatisieren.

Ereignis-Dressierer

Ein trivialer Ereignis-Dressierer

Weil der Code, um für Ereignisse und die Hauptschleife zu überprüfen, von der Anwendung nicht abhängt, passt vieles Programmierfachwerk auf ihre Durchführung auf und nimmt an, dass der Benutzer nur den Code für die Ereignis-Dressierer zur Verfügung stellt. In diesem einfachen Beispiel kann es einen Anruf zu einem genannten Ereignis-Dressierer geben, der ein Argument mit einer Reihe von Charakteren, entsprechend einschließt, was der Benutzer vor dem Schlagen des EINGEHEN Schlüssels getippt hat. Um zwei Zahlen hinzuzufügen, muss die Lagerung außerhalb des Ereignis-Dressierers so verwendet werden die Durchführung könnte unten ähnlich sein.

erklären Sie allgemein den Schalter K und die ganze Zahl T.

OnKeyEnter (Charakter C)

{\

Bekehrter C zu einer Nummer N

wenn K Nullladen N in T und Zunahme K ist

fügen Sie sonst N zu T hinzu, drucken Sie das Ergebnis und fassen Sie K zur Null neu

}\

</pre>

Während das Nachgehen der Geschichte in einem Gruppe-Programm aufrichtig ist, verlangt es spezielle Aufmerksamkeit und in einem Ereignis-gesteuerten Programm planend.

Ausnahme-Dressierer

Auf einigen Programmiersprachen (z.B, PL/1), wenn auch ein Programm selbst vorherrschend Ereignis gesteuerte, bestimmte anomale Ereignisse wie ein Hardware-Fehler nicht sein kann, können Überschwemmung oder "Programm-Kontrollen" vorkommen, der vielleicht weitere Verarbeitung verhindert. Ausnahme-Dressierer können durch "AUF Behauptungen" in (ungesehenen) Anrufern zur Verfügung gestellt werden, um Hauswirtschaft-Routinen zur Verfügung zu stellen, um später vor der Beendigung aufzuräumen.

Das Schaffen von Ereignis-Dressierern

Der erste Schritt im Entwickeln eines Ereignis-gesteuerten Programms soll eine Reihe von Unterprogrammen oder Methoden, genannt Routinen des Ereignis-Dressierers schreiben. Diese Routinen behandeln die Ereignisse, auf die das Hauptprogramm antworten wird. Zum Beispiel kann ein einzelner Maus-Klick des nach links Knopfs auf einem Befehl-Knopf in einem GUI Programm eine Routine auslösen, die ein anderes Fenster öffnen, Daten zu einer Datenbank sparen oder über die Anwendung herrschen wird. Viele moderne Tagesprogrammierumgebungen versorgen den Programmierer mit Ereignis-Schablonen, so dass der Programmierer nur den Ereignis-Code liefern muss.

Der zweite Schritt ist, Ereignis-Dressierer zu Ereignissen zu binden, so dass die richtige Funktion genannt wird, wenn das Ereignis stattfindet. Grafische Redakteure verbinden die ersten zwei Schritte: Klicken Sie auf einem Knopf doppel, und der Redakteur schafft einen (leeren) Ereignis-Dressierer, der mit dem Benutzer vereinigt ist, der auf den Knopf klickt, und öffnet ein Textfenster, so können Sie den Ereignis-Dressierer editieren.

Der dritte Schritt im Entwickeln eines Ereignis-gesteuerten Programms soll die Hauptschleife schreiben. Das ist eine Funktion, die für das Ereignis von Ereignissen überprüft, und dann den zusammenpassenden Ereignis-Dressierer nennt, um es zu bearbeiten. Die meisten Ereignis-gesteuerten Programmierumgebungen stellen bereits diese Hauptschleife zur Verfügung, so braucht sie nicht vom Anwendungsprogrammierer spezifisch zur Verfügung gestellt zu werden. RPG, eine frühe Programmiersprache von IBM, dessen Designkonzept der 1960er Jahre dem gesteuerten Ereignis ähnlich war, besprochen oben programmierend, hat eine eingebaute Haupteingabe/Ausgabe-Schleife zur Verfügung gestellt (bekannt als der "Programm-Zyklus"), wo die Berechnungen in die Übereinstimmung mit 'Hinweisen' (Fahnen) geantwortet haben, die früher im Zyklus gesetzt wurden.

Kritik und beste Praxis

Ereignis-gesteuerte Programmierung wird in grafischen Benutzerschnittstellen weit verwendet, weil sie durch die meisten kommerziellen Produkt-Werkzeuge als das Modell für die Wechselwirkung angenommen worden ist. Das Design jener Werkzeuge ist dafür kritisiert worden, ein grob vereinfachtes Modell der Ereignis-Handlung, Hauptprogrammierer zu fördern, um Fehler anfällig, schwierig zu schaffen, sich auszustrecken und übermäßig komplizierter Anwendungscode:

Einfädelnder Stackless

Ein Ereignis gesteuerte Annäherung wird auf Hardware-Beschreibungssprachen verwendet. Ein Faden-Zusammenhang braucht nur einen ZE-Stapel, während er ein Ereignis, einmal getan aktiv bearbeitet, die ZE kann weitergehen, um andere Ereignis-gesteuerte Fäden zu bearbeiten, der einer äußerst hohen Zahl von Fäden erlaubt, behandelt zu werden. Das ist im Wesentlichen eine Zustandsmaschinenannäherung.

Siehe auch

  • Unterbrechung
  • Vergleich, Paradigmen zu programmieren
  • Programmierung von Dataflow (ein ähnliches Konzept)
  • DOM Ereignisse
  • Ereignis-gesteuerte Architektur
  • Ereignis-Strom-Verarbeitung (ein ähnliches Konzept)
  • Hardware-Beschreibungssprache
  • Inversion der Kontrolle
  • Nachrichtenorientierter middleware
  • Programmierung des Paradigmas
  • Veröffentlichen Sie/unterzeichnen Sie
  • Signalprogrammierung (ein ähnliches Konzept)
  • SEDA (inszenierte Ereignis-gesteuerte Architektur)
  • Virtuelle Gleichzeitigkeit, ein verteiltes Ausführungsmodell für die Ereignis-gesteuerte Programmierung

Links

http://news.tmcnet.com/news/2006/08/18/1816129.htm

Der Fluss Irtysh / Der See Zaysan
Impressum & Datenschutz