| [b20878b] | 1 | Need to add (interfaces, classes, factory methods):
|
|---|
| [5a4b185] | 2 | self
|
|---|
| 3 | true
|
|---|
| 4 | false
|
|---|
| 5 | result
|
|---|
| 6 | contracts: ensures requires: part of function decl
|
|---|
| 7 |
|
|---|
| [b20878b] | 8 | Need to implement all new expressions, statements.
|
|---|
| 9 |
|
|---|
| 10 | --
|
|---|
| 11 |
|
|---|
| [d96fdd6d] | 12 | ABC: front end for C
|
|---|
| 13 | ast: this will have library functions and state like
|
|---|
| 14 | MPI_Send, blah blah blah
|
|---|
| 15 |
|
|---|
| 16 | SARL: symbolic algebra and reasoning library
|
|---|
| 17 | provides representation, manipulation of symbolic expressions
|
|---|
| 18 | interface to theorem provers, etc.
|
|---|
| 19 |
|
|---|
| 20 | GMC: generic model checker
|
|---|
| 21 | provides depth first search, printing traces, ...
|
|---|
| 22 |
|
|---|
| 23 | CIVL: Concurrency Intermeidate Verification Language
|
|---|
| 24 | ast: similar to ABC AST but simpler
|
|---|
| 25 | uses: (nothing)
|
|---|
| 26 | provides: AST
|
|---|
| 27 | notes: no type qualifiers or other complicated C stuff.
|
|---|
| 28 | functions can be defined in any scope
|
|---|
| 29 | eventually add pointer scope qualifiers, etc.
|
|---|
| 30 | provide a side-effect remover and ASTMerger (like a linker, for libraries)
|
|---|
| 31 |
|
|---|
| 32 | front: common interface for all CIVL front-ends
|
|---|
| 33 | uses: ast
|
|---|
| 34 | provides: FrontEnd
|
|---|
| 35 | notes: provides methods to parse a file and produce an AST
|
|---|
| 36 |
|
|---|
| 37 | civlc: grammar and parser for CIVL-C language
|
|---|
| 38 | uses: front, ast
|
|---|
| 39 | provides: CivlCFrontEnd
|
|---|
| 40 | notes: the grammar of the CIVL-C language should be very
|
|---|
| 41 | closely aligned with the CIVL AST.
|
|---|
| 42 | this module is like ABC, but results in a CIVL AST.
|
|---|
| 43 | also uses library files in lib
|
|---|
| 44 | could this use the AST preprocessor?
|
|---|
| 45 |
|
|---|
| 46 | lib: libraries written in CIVL-C: mp.civl, etc.
|
|---|
| 47 | how is state and definitions incorporated into the module?
|
|---|
| 48 | notes: this is not java source, just CIVL-C source
|
|---|
| 49 |
|
|---|
| 50 | c: translator from C code to CIVL AST
|
|---|
| 51 | uses: ABC, ast, front, civlc
|
|---|
| 52 | uses ABC to create ABC-AST, then translated that to CIVL-AST
|
|---|
| 53 | needs to translate library calls to CIVL libraries, e.g.,
|
|---|
| 54 | MPI_Send -> CIVL_MP_send, etc. Hence needs to civlc
|
|---|
| 55 | to parse and construct library modules, then merge them
|
|---|
| 56 | needs to introduce scopes for MPI processes etc
|
|---|
| 57 |
|
|---|
| 58 | model: representation of a CIVL model, like in CVT
|
|---|
| 59 | uses: ast
|
|---|
| 60 | provides: Model, ModelBuilder
|
|---|
| 61 | notes: ModelBuilder translates AST to Model
|
|---|
| 62 | Model elements maintain back-pointers to AST nodes
|
|---|
| 63 |
|
|---|
| 64 | translates AST to Model
|
|---|
| 65 |
|
|---|
| 66 | state: representation and manipulation of states of a Model
|
|---|
| 67 | note: like CVT, but no buffers
|
|---|
| 68 |
|
|---|
| 69 | transition:
|
|---|
| 70 |
|
|---|
| 71 | predicate:
|
|---|
| 72 |
|
|---|
| 73 | kripke:
|
|---|
| 74 |
|
|---|