* * Add a README in experiments/CCompiler, including where to find licence information, software requirements: menhir, ocaml, CIL (included in distribution)... how to compile how to run and test * Put trace of development in a separate directory outside the distribution. * In the sources in experiments/backend/src: put Annot_all (direct approach) outside the distribution trace origin/licence of each file * It would be good to separate as much as possible the basic compiler from the part which has to do with the annotations (labelling, instrumentation, annotation, computation cost on the control flow graph). Parts that need to be kept in the same file should be clearly marked. Ideally, it should be possible to extract quasi-automatically the distribution for the basic compiler. * Increase readability of source code. Currently there are too many files. For instance, create a directory for each intermediate language and a separate directory for shared algorithms, memory model. * Clarify what part of C is covered. Currently, wrt to CompCert we have no floating point and no dynamic allocation of arrays. Moreover starting from RTL_MIPS we do not cover all C data formats. Anything else ? => Currently, local arrays can be handled through allocation in the heap. * Prepare battery of tests. Simple tests, CompCert tests, programs generated by Lustre compiler. When looking at this tests, we should identify the part of C that we definitely want to be able to compile. * In the commands, we could add the possibility to select the target assembly language (currently only MIPS, but ARM7, 8051 in the future). * Clarify parts of the compiler that are sensitive to retargetting. For instance, what if we move to 8 bits integers (8051) ? => Look into SDCC manual. * Possibility to define an interpreter for subset of ARM7, 8051 used in the compilation. Necessity to fix simulators for ARM7, 8051.