
# D Program Syntax Reference

This reference describes how to write D programs that can be used with DTrace to enable probes and perform operations.

-   **[Program Structure](../reference/d_program_syntax_reference_program_structure.md)**  
A D program consists of a set of clauses that describe the probes to enable, an optional predicate that controls when to run, and one or more statements that often describe some functionality to implement when the probe fires.
-   **[Types, Operators, and Expressions](../reference/dtrace-ref-TypesOperatorsandExpressions.md)**  

-   **[Variables](../reference/dtrace-ref-Variables.md)**  

-   **[Pointers](../reference/dtrace-ref-PointersandScalarArrays.md)**  

-   **[Structs and Unions](../reference/dtrace-ref-StructsandUnions.md)**  

-   **[DTrace String Processing](../reference/dtrace-ref-DTraceSupportforStrings.md)**  

-   **[Aggregations](../reference/aggregation.md)**

-   **[Speculation](../reference/dtrace-ref-speculation.md)**


