.. _introductionDoc: Introduction ============ **Stride** is a domain specific programming language for real-time sound synthesis and processing. It is a declarative, strongly typed, and compiled language. There are two main elements in the language: **blocks** and **stream expressions**. A Block is declared through a **block declaration**. There are many block types in Stride. At declaration, blocks are assigned a unique **label**. Blocks have **ports**. The number of ports and their type varies from one block type to another. Ports enable blocks to establishing connections among them. These connections are called **streams**. A block's ports are exposed in two ways: either through a **property** or through its (the block's) unique label. If a port is exposed through a property, a stream is established with it at deceleration by making a property assignment. If a port is exposed through its block's label, a stream is established through a stream expression. Stream expressions are established through the **stream operator >>**. Blocks in Stride can be bundled together to form **block bundles**.