Back: 12. Cloning Devices Forward: 13.1 First stage of interpretation   FastBack: 12. Cloning Devices Up: fsc2 FastForward: 14. Writing Modules         Top: fsc2 Contents: Table of Contents Index: Index About: About This Document

13. Internals

In this chapter I will try to explain in some more detail how fsc2 works internally. I hope that this will help especially if you're going try to write a new module for a device (or if you get upset about things fsc2 does differently from the way you would like it to).

As you will already have understood, fsc2 is basically an interpreter for EDL scripts. Traditional interpreters interpret each line of input one after another, i.e. they analyze a line, and, if the line is syntactically correct, execute it and then continue with the next one. That's what fsc2 also does, but only for the parts before the EXPERIMENT section. In contrast, the interpretation of the EXPERIMENT section of an EDL file consists of several steps. In the first step the EXPERIMENT section as a whole is read in and only syntax checks are done. In the second step a complete test run of EXPERIMENT section of the script is done to avoid that the experiment will have to be stopped due to obvious logical errors in the EDL script. The device modules are involved, i.e. they already can do all kinds of checks on what can be expected to happen during the real experiment and detect possible problems.

Only if all these tests succeeded the third step, the execution of the EXPERIMENT section of the EDL script, is started, i.e. the experiment is run. When an experiment is restarted (without reloading the EDL file) only this third step is repeated.

In the following I will try to explain what happens during these three steps of the execution of an EDL script in some more detail. Then follows a real long section with a tour de force through the sources of the program. This is hopefully going to be helpful for people that try eliminate bugs or even extend fsc2.


Back: 12. Cloning Devices Forward: 13.1 First stage of interpretation   FastBack: 12. Cloning Devices Up: fsc2 FastForward: 14. Writing Modules

This document was generated by Jens Thoms Toerring on September 6, 2017 using texi2html 1.82.