\begin{figure}[t] \[ \begin{array}{rcl} \defterm{compilationUnit} & : & \nonterm{import}^\star\s\nonterm{scopeExpression}\\ \defterm{import} & : & \term{import}\s\token{UIDENT}\s\term{;} \end{array} \] \caption{Compilation unit concrete syntax} \label{compilation_unit} \end{figure} \section{Compilation Units} \label{sec:compilation_units} Compilation unit is a minimal structure recognized by a parser. An application can contain multiple units, compiled separatedly. In order to use other units they have to be imported. In particular, the standard library is comprized of a number of precompiled units, which can be imported by an end-user application. The concrete syntax for compilation unit is shown on Fig.~\ref{compilation_unit}. Besides optional imports a unit must contain a \nonterm{scopeExpression}, which may contain some definitions and computations. Note, a unit can not be empty. The computations described in a unit are performed at unit initialization time (see Chapter~\ref{sec:driver}).