Event-driven programming
Event-driven programming is a computer programming paradigm. Unlike traditional programs, which follow their own control flow pattern, only sometimes changing course at branch points, the control flow of event-driven programs largely driven by external events. Event-driven programs typically consist of a number of small programs called event handlers, which are to be called in response to external events, and a dispatcher, which calls the event handlers, often using an event queue to hold unprocessed events. In many cases event handlers can trigger events themselves, possibly leading to an event cascade. Event-driven programming stresses flexibility and asynchrony as virtues, and tries to be as modeless as possible. Graphical user interface programs are typically programmed in an event-driven style. Computer operating systems are another classic example of event-driven programs on at least two levels. At the lowest level, interrupt handlers act as direct event handlers for hardware events, with the CPU hardware performing the role of the dispatcher. Operating systems also typically act as dispatchers for software processes, passing data and software interrupts to user processes that in many cases are programmed as event handlers themselves.
ReferencesGrant Palmer: Java Event Handling, Prentice Hall, ISBN 0-13-041802-1David Luckham: The Power of Events - An Introduction to Complex Event Processing in Distributed Enterprise Systems, Addison-Wesley, ISBN 0-201-72789-7George S. Fishman: Discrete-Event Simulation - Modeling, Programming, and Analysis, Springer, ISBN 0-387-95160-1Miro Samek: Practical Statecharts in C/C++: Quantum Programming for Embedded Systems, CMP Books, ISBN 1-57820-110-1
See alsoSignal programming (a similar concept)Flow-driven programming (contrast)Programming paradigmsReactor PatternSEDAQuantum LeapsLiboop - event loop management librarylibsigc++ - Callback Framework for C++REBECA - Event-Based Electronic Commerce ArchitectureEvent programming languageMessage Oriented Middleware
External linksDescription from Portland Pattern RepositoryTutorial "Event Driven Programming" by Alan GauldArticle "Transitioning from Structured to Event-Driven Programming" by Ben WatsonArticle "Rethinking Swing Threading" by Jonathan SimonArticle "The event driven programming style" by Chris McDonaldArticle "Event Driven Programming using Template Specialization" by Christopher DigginsArticle "Delegates and Event Handling in C#" by Faisal JawaidArticle "Concepts and Architecture of Vista - a Multiparadigm Programming Environment" by Stefan Schiffer and Joachim Hans FröhlichChapter "Event-driven programming vs. multi-threaded programming" from the Equeue user's guide by Gerd StolpmannChapter "Event-Driven Programming and Agents"LabWindows/CVI ResourcesComment by Tim BoudreauCitations from CiteSeer
|
|