Signal programming
Encyclopedia
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 event
s 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.
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. 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
.
such as SIGTERM
, SIGSEGV
etc.
Event-driven programming
In computer programming, event-driven programming or event-based programming is a programming paradigm in which the flow of the program is determined by events—i.e., sensor outputs or user actions or messages from other programs or threads.Event-driven programming can also be defined as an...
.
The word signal
Signal (computing)
A signal is a limited form of inter-process communication used in Unix, Unix-like, and other POSIX-compliant operating systems. Essentially it is an asynchronous notification sent to a process in order to notify it of an event that occurred. When a signal is sent to a process, the operating system...
is used instead of the word dataflow
Dataflow
Dataflow is a term used in computing, and may have various shades of meaning. It is closely related to message passing.-Software architecture:...
in documentation of such libraries as Qt, GTK+
GTK+
GTK+ is a cross-platform widget toolkit for creating graphical user interfaces. It is licensed under the terms of the GNU LGPL, allowing both free and proprietary software to use it. It is one of the most popular toolkits for the X Window System, along with Qt.The name GTK+ originates from GTK;...
and libsigc++
Libsigc++
Libsigc++ is a C++ library for typesafe callbacks.'libsigc++' implements a callback system for use in abstract interfaces and general programming. Libsigc++ is one of the earliest implementations of the signals and slots concept implemented using C++ template metaprogramming...
. The time instants when the signal value (or dataflow value) changes correspond to event
Event (computing)
In computing an event is an action that is usually initiated outside the scope of a program and that is handled by a piece of code inside the program. Typically events are handled synchronous with the program flow, that is, the program has one or more dedicated places where events are handled...
s in event-driven programming.
The signal flow of a program or a signal processing system is described graphically in a signal-flow graph
Signal-flow graph
A signal-flow graph is a special type of block diagram—and directed graph—consisting of nodes and branches. Its nodes are the variables of a set of linear algebraic relations. An SFG can only represent multiplications and additions. Multiplications are represented by the weights of the branches;...
or a data-flow diagram.
Synchronous signal programming
In the wider software development community the word signal is sometimes used especially to denote synchronousSynchronization (computer science)
In computer science, synchronization refers to one of two distinct but related concepts: synchronization of processes, and synchronization of data. Process synchronization refers to the idea that multiple processes are to join up or handshake at a certain point, so as to reach an agreement or...
events (sequences of samples, video frames, etc, with constant sample rate or frame rate
Frame rate
Frame rate is the frequency at which an imaging device produces unique consecutive images called frames. The term applies equally well to computer graphics, video cameras, film cameras, and motion capture systems...
) 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. 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
Signalling (telecommunications)
In telecommunication, signaling has the following meanings:*the use of signals for controlling communications...
means asynchronous phone call metadata
Metadata
The term metadata is an ambiguous term which is used for two fundamentally different concepts . Although the expression "data about data" is often used, it does not apply to both in the same way. Structural metadata, the design and specification of data structures, cannot be about data, because at...
information exchange, for example of telephone numbers.
One application of synchronous signal programming is observer pattern
Observer pattern
The observer pattern is a software design pattern in which an object, called the subject, maintains a list of its dependents, called observers, and notifies them automatically of any state changes, usually by calling one of their methods...
.
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 signalsSignal (computing)
A signal is a limited form of inter-process communication used in Unix, Unix-like, and other POSIX-compliant operating systems. Essentially it is an asynchronous notification sent to a process in order to notify it of an event that occurred. When a signal is sent to a process, the operating system...
such as SIGTERM
SIGTERM
On POSIX-compliant platforms, SIGTERM is the signal sent to a process to request its termination. The symbolic constant for SIGTERM is defined in the header file signal.h. Symbolic signal names are used because signal numbers can vary across platforms, however on the vast majority of systems,...
, SIGSEGV
SIGSEGV
On POSIX-compliant platforms, SIGSEGV is the signal sent to a process when it makes an invalid memory reference, or segmentation fault. The symbolic constant for SIGSEGV is defined in the header file signal.h...
etc.