source: CIVL/mods/dev.civl.com/notes/structure.txt@ 1aaefd4

main test-branch
Last change on this file since 1aaefd4 was aad342c, checked in by Stephen Siegel <siegel@…>, 3 years ago

Performing huge refactor to incorporate ABC, GMC, and SARL into CIVL repo and use Java modules.

git-svn-id: svn://vsl.cis.udel.edu/civl/trunk@5664 fb995dde-84ed-4084-dfe6-e5aef3e2452c

  • Property mode set to 100644
File size: 2.3 KB
RevLine 
[b20878b]1Need 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]8Need to implement all new expressions, statements.
9
10--
11
[d96fdd6d]12ABC: front end for C
13 ast: this will have library functions and state like
14 MPI_Send, blah blah blah
15
16SARL: symbolic algebra and reasoning library
17 provides representation, manipulation of symbolic expressions
18 interface to theorem provers, etc.
19
20GMC: generic model checker
21 provides depth first search, printing traces, ...
22
23CIVL: 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
Note: See TracBrowser for help on using the repository browser.