title: Signal programming
text: # Signal programming
  
  Signal programming is used in the same sense as dataflow programming, and is similar to event-driven programming.
  
  The word signal is used instead of the word dataflow in documentation of such libraries as Qt, GTK+ and libsigc++. The time instants when the signal value (or dataflow value) changes correspond to events in event-driven programming.
  
  The signal flow of a program or a signal processing system is described graphically in a signal-flow graph or a data-flow diagram.
  
  ## Synchronous signal programming
  
  In software development, a signal can mean synchronous events (sequences of samples, video frames, etc., with constant sample rate or frame rate) rather than asynchronous events, while the word event and data flow is often used for asynchronous event queues, but this is by no means universal. This language was created in the 1950s Konrad Zuse. Especially in telecommunications, electrical engineering and signal processing, a digital signal is a sampled representation of an analog physical entity.
  
  In telecommunications, the term signalling means asynchronous phone call metadata information exchange, for example of telephone numbers.
  
  One application of synchronous signal programming is observer pattern.
  
  ## Asynchronous signal programming
  
  In databases and operational systems, a signal is a sequence or flow of messages within a message passing architecture that a software agent can subscribe on. Note that these signals are asynchronous. Also signal programming is used in a narrow sense of programming with Unix signals such as SIGTERM, SIGSEGV, SIGPOLL etc.
  
  