Source: https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/server-prog/ Documentation version: v5.3.2 # Server-side programming overview GQL supports server-side programming through [user-defined procedures (UDPs)](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/procedures/create/). This allows developers to extend the capabilities of GQL by writing custom logic that can be executed directly on the server. The core syntax for server-side programming includes: - [Match compute](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/match-compute/): Enables complex pattern matching and iterative computations on graph data. - [Variable manipulation](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/set/): Supports assignment and aggregation of different types of [variables](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/variable-definition/). - [Control flow](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/control-flow/): Provides constructs for conditional execution and looping to control the flow of the program. - [Logging](https://dev-docs.nebula-graph.io/v5.3.2/database-gql-reference/log/): Supports logging mechanisms to help with debugging and monitoring server-side programs.