Changes between Version 1 and Version 2 of CIVL-C


Ignore:
Timestamp:
07/08/22 15:07:02 (4 years ago)
Author:
Alex Wilton
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • CIVL-C

    v1 v2  
    88  * Which statements executed and the number of times they were. Perhaps color code the statements.
    99* CIVL must be concurrent
     10* CIVL debugger
     11  * Able to manually step through code choosing which transitions to take.
     12  * Breakpoints
     13  * Some statement that you can insert that, when in debugging mode, asks which transition to take at that point. `$ask;`
     14  * At any stopped point in the code be able to observe the current execution path and state.
     15  * Similarly, be able to evaluate expressions at any point from any specific process.
     16* Be able to store high memory items into the hard drive to save memory while executing.
     17* `-showProgram` should be able to be directly executed by CIVL.
     18  * Be able to specify which transformations we apply when executing `-showProgram`
     19* If `-showProgram` enabled and we get an error, then print AST before exiting.
     20* Be able to specify hardware environment to verify under like ints are 32 bits, floats are 32 bits, big-endian vs little-endian, etc.
    1021
    1122=== Design
    1223
    1324* Everything goes in one repository
     25* The ability to associate static traits to ASTs like "no for loops" or "side effect free", etc.
     26* Be able to easily loop over AST nodes of a certain type (in program order). Maybe just support visitor pattern.
     27* CIVL-C language and library must be completely well-defined and documented.
     28* CIVL-IR must be completely well-defined and documented.
     29* Break up Evaluator by removing big switch:
     30  * Have "ExecutableExpression" and "ExecutableStatement"-type classes which have an evaluate method and extend the syntactic Expression and Statement classes.
     31* Components:
     32  * Util - uses nothing
     33  * SARL - uses Util
     34  * ABC - uses SARL, Util
     35  * MC - uses ABC, SARL, Util
    1436
    1537=== Process