The Esterel v5 21 System Manual - Courses
The Esterel v5 21 System Manual - Courses
The Esterel v5 21 System Manual - Courses
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
Chapter 2<br />
Using the <strong>Esterel</strong> Compiler<br />
This chapter presents the compiler structure in a detailed way. Its reading<br />
is useful for making the best usage of it.<br />
2.1 <strong>The</strong> <strong>Esterel</strong> <strong>v5</strong> <strong>21</strong> Compiler Structure<br />
<strong>The</strong> <strong>Esterel</strong> <strong>v5</strong> <strong>21</strong> compiler is made out of several internal processors controlled<br />
by a single esterel command. Normally, the user should only call<br />
this command and should never call directly the internal processors. However,<br />
it is important to know the names and functions of the processors.<br />
For this, it is necessary to understand what are the source and intermediate<br />
codes handled by the compiler and the associated file suffixes.<br />
strl A file foo.strl contains source <strong>Esterel</strong> code. It can contain several<br />
modules.<br />
ic A file foo.ic contains intermediate <strong>Esterel</strong> code. A file foo.ic is<br />
obtained from a file foo.strl by running the strlic processor.<br />
Each source module produces an intermediate code module, which<br />
starts by a set of tables and continues by a set of statements<br />
written in an imperative parallel kernel code roughly equivalent<br />
to the kernel <strong>Esterel</strong> calculus [1] but presented in a graph form,<br />
which is more efficient for compilation purposes. <strong>The</strong> strlic<br />
processor type-checks the source code and generates the ic code<br />
only if no errors are found.<br />
If a source module contains calls to other modules, the same calls<br />
appear in the ic code. <strong>The</strong> iclc processor resolves open calls<br />
and links together several ic modules by recursively expanding<br />
11