# Embedded Systems Glossary: Q

## quadrature encoder

*n. *A type of rotary encoder. A mechanical device, the
quadrature encoder produces two outputs 90 degrees out of phase.
By counting transitions of these outputs, a computer can decode
the shaft's position and its direction of motion.

Contrast with binary encoder, Gray code encoder.

## quantum programming

*n. *Any programming involving a quantum computer. Quantum
computers are devices that compute using superpositions of quantum
states. Small quantum computers have recently been built, and
progress is continuing. It is widely suspected that if large-scale
quantum computers can be built, they will be able to solve certain
kinds of problems far faster than any classical computer.

EXAMPLE: Quantum programming attacks problems like finding a password. The problem has these four properties.

- The only way to solve it is to guess answers repeatedly and check them.
- There are n possible answers to check.
- Every possible answer takes the same amount of time to check.
- There are no clues about which answers might be better; generating possibilities randomly is just as good as checking them in some special order.

For problems with all four properties, it will take an average of n/2 guesses to find the answer using a classical computer. The time for a quantum computer to solve this will instead be proportional to the square root of n.

## Quantum Programming

*N. *A programming paradigm that extends traditional object-oriented
programming with two additional fundamental concepts: hierarchical
state machines and computing based on active objects. Abbreviated
QP. These two concepts complement encapsulation, inheritance,
and polymorphism—the famous tripartite mantra of OOP—and
are just as fundamental. See also Quantum Framework.

FURTHER READING: Samek, Miro. Practical Statecharts in C and C++: Quantum Programming for Embedded Systems. CMP Books, 2002.