Directory

Encyclopedia

NodeWorks
                              ENCYCLOPEDIA

Link Checker

Home
Encyclopedia : E : EV : EVE :

Event-driven programming

 

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.

References

  • Grant Palmer: Java Event Handling, Prentice Hall, ISBN 0-13-041802-1
  • David Luckham: The Power of Events - An Introduction to Complex Event Processing in Distributed Enterprise Systems, Addison-Wesley, ISBN 0-201-72789-7
  • George S. Fishman: Discrete-Event Simulation - Modeling, Programming, and Analysis, Springer, ISBN 0-387-95160-1
  • Miro Samek: Practical Statecharts in C/C++: Quantum Programming for Embedded Systems, CMP Books, ISBN 1-57820-110-1

    See also

  • Signal programming (a similar concept)
  • Flow-driven programming (contrast)
  • Programming paradigms
  • Reactor Pattern
  • SEDA
  • Quantum Leaps
  • Liboop - event loop management library
  • libsigc++ - Callback Framework for C++
  • REBECA - Event-Based Electronic Commerce Architecture
  • Event programming language
  • Message Oriented Middleware

    External links

  • Description from Portland Pattern Repository
  • Tutorial "Event Driven Programming" by Alan Gauld
  • Article "Transitioning from Structured to Event-Driven Programming" by Ben Watson
  • Article "Rethinking Swing Threading" by Jonathan Simon
  • Article "The event driven programming style" by Chris McDonald
  • Article "Event Driven Programming using Template Specialization" by Christopher Diggins
  • Article "Delegates and Event Handling in C#" by Faisal Jawaid
  • Article "Concepts and Architecture of Vista - a Multiparadigm Programming Environment" by Stefan Schiffer and Joachim Hans Fröhlich
  • Chapter "Event-driven programming vs. multi-threaded programming" from the Equeue user's guide by Gerd Stolpmann
  • Chapter "Event-Driven Programming and Agents"
  • LabWindows/CVI Resources
  • Comment by Tim Boudreau
  • Citations from CiteSeer


  • NodeWorks boosts web surfing!
    Page Returned in 0.109 seconds - HTML Compressed 66.8%

    This article is from Wikipedia. All text is available
    under the terms of the GNU Free Documentation License.
     GNU Free Documentation License
    © 2008 Chamas Enterprises Inc.