# Program Structure

A program can be divided into multiple components, which are external declarations that include function definitions and identifier declarations.

*`program`*:\
 *`external-declaration`*

*`external-declaration`*:\
 [*`function-definition`*](https://glados-2.gitbook.io/clight/reference/functions/function-definitions)\
 [*`declaration`*](https://glados-2.gitbook.io/clight/reference/declarations-and-types)<br>
