Skip to content

Commit dbd6988

Browse files
Merge pull request #2750 from johnnonweiler/documentation-structure
Improve developer documentation structure
2 parents 24cbfc6 + 76dbb2a commit dbd6988

19 files changed

+457
-266
lines changed

doc/architectural/background-concepts.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -3,30 +3,30 @@
33

44
\author Martin Brain, Peter Schrammel
55

6-
# Representations #
6+
\section representations_section Representations
77

8-
## AST: types, globals, variables, functions, code blocks, language primitives, assignments, expressions, variables ##
8+
\subsection AST_section AST: types, globals, variables, functions, code blocks, language primitives, assignments, expressions, variables
99

1010
To be documented.
1111

12-
## CFG ##
12+
\subsection CFG_section CFG
1313

1414
To be documented.
1515

16-
## SSA ##
16+
\subsection SSA_section SSA
1717

1818
To be documented.
1919

20-
# Analysis techniques #
20+
\section analysis_techniques_section Analysis techniques
2121

22-
## Bounded model checking ##
22+
\subsection BMC_section Bounded model checking
2323

2424
To be documented (can copy from the CBMC manual).
2525

26-
## SAT and SMT ##
26+
\subsection SAT_section SAT and SMT
2727

2828
To be documented.
2929

30-
## Static analysis ##
30+
\subsection static_analysis_section Static analysis
3131

3232
To be documented.

doc/architectural/bmct-class.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

doc/architectural/cbmc-architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ be output to files (this is what `goto-cc` does) and are (informally)
5252
referred to as “goto binaries” or “goto programs”. The back-end are
5353
tools process this format, either directly from the front-end or from
5454
it’s saved output. These include a wide range of analysis and
55-
transformation tools (see \ref section-other-tools).
55+
transformation tools (see \ref other-tools).
5656

5757
# Concepts #
5858
## {C, java bytecode} → Parse tree → Symbol table → GOTO programs → GOTO program transformations → BMC → counterexample (goto_tracet) → printing ##

doc/architectural/code-walkthrough.md

Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
\ingroup module_hidden
2+
\page code-walkthrough Code Walkthrough
3+
4+
\author Cesar Rodriguez, Owen Jones
5+
6+
\section data-structures-core-structures-and-ast-section Data structures: core structures and AST
7+
8+
The core structures used for representing abstract syntax trees are all
9+
documented in \ref util.
10+
11+
\section data-structures-from-ast-to-goto-program-section Data structures: from AST to GOTO program
12+
13+
See \ref goto-programs, \ref goto_programt and [instructiont](\ref goto_programt::instructiont).
14+
15+
\section front-end-languages-generating-codet-from-multiple-languages-section Front-end languages: generating codet from multiple languages
16+
17+
\subsection language-uit-section language_uit, language_filest, languaget classes:
18+
19+
See \ref langapi.
20+
21+
\subsection languages-c-section C
22+
23+
See \ref ansi-c.
24+
25+
\subsection languages-cpp-section C++
26+
27+
See \ref cpp.
28+
29+
\subsection languages-java-section Java bytecode
30+
31+
See \ref java_bytecode.
32+
33+
\section bmct-class-section Bmct class
34+
35+
\subsection equation-section equation
36+
37+
See \ref symex-overview.
38+
39+
40+
\section symbolic-executors-section Symbolic executors
41+
42+
\subsection symbolic-execution-section Symbolic execution
43+
44+
See \ref symex-overview.
45+
46+
47+
\section solvers-infrastructure-section Solvers infrastructure
48+
49+
See \ref solvers-overview.
50+
51+
\section static-analysis-apis-section Static analysis APIs
52+
53+
See \ref analyses and \ref pointer-analysis.

doc/architectural/compilation-and-development.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ To be documented.
2424
The regression tests are contained in the `regression/` folder.
2525
They are grouped into directories for each of the tools/modules.
2626
Each of these contains multiple directories, each of which contains
27-
input files and one or more`.desc` files that describe what command
27+
input files and one or more `.desc` files that describe what command
2828
to run, what output is expected and so on. There is a Perl script,
2929
`test.pl` that is used to invoke the tests as:
3030

doc/architectural/data-structures-core-structures-and-ast.md

Lines changed: 0 additions & 102 deletions
This file was deleted.

doc/architectural/data-structures-from-ast-to-goto-program.md

Lines changed: 0 additions & 42 deletions
This file was deleted.

doc/architectural/front-end-languages-generating-codet-from-multiple-languages.md

Lines changed: 0 additions & 36 deletions
This file was deleted.

doc/architectural/front-page.md

Lines changed: 15 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ you can access it <a href=
6868

6969
### For contributors:
7070

71+
The following pages attempt to provide the information that a developer needs to
72+
work on CBMC, in a sensible order. In many cases they link to the appropriate
73+
class-level or module-level documentation.
74+
7175
* \subpage compilation-and-development
7276

7377
* \subpage background-concepts
@@ -76,34 +80,23 @@ you can access it <a href=
7680

7781
* \subpage folder-walkthrough
7882

79-
* \subpage data-structures-core-structures-and-ast
80-
81-
* \subpage data-structures-from-ast-to-goto-program
82-
83-
* \subpage front-end-languages-generating-codet-from-multiple-languages
84-
85-
* \subpage bmct-class
86-
87-
* \subpage symbolic-executors
88-
89-
* \subpage solvers-infrastructure
90-
91-
* \subpage static-analysis-apis
83+
* \subpage code-walkthrough
9284

9385
* \subpage other-tools
9486

95-
* For higher-level architectural information, each of the pages under
96-
the <a href="modules.html">Modules</a>
97-
link gives an overview of a directory in the CProver codebase.
98-
99-
* If you already know exactly what you're looking for, the API reference
100-
is generated from the codebase. You can search for classes and class
101-
members in the search bar at top-right or use one of the links in the
102-
sidebar.
103-
10487
* The \subpage tutorial "CBMC Developer Tutorial" helps new contributors
10588
to CProver to get their feet wet through a series of programming
10689
exercises - mostly modifying goto-instrument, and thus learning to
10790
manipulate the main data structures used within CBMC.
10891

92+
For higher-level architectural information, each of the pages under
93+
the <a href="modules.html">Modules</a>
94+
link gives an overview of a directory in the CProver codebase.
95+
96+
If you already know exactly what you're looking for, the best place
97+
to look is the API reference, which
98+
is generated from the codebase. You can search for classes and class
99+
members in the search bar at top-right or use one of the links in the
100+
sidebar.
101+
109102
\defgroup module_hidden _hidden

doc/architectural/solvers-infrastructure.md

Lines changed: 0 additions & 16 deletions
This file was deleted.

doc/architectural/static-analysis-apis.md

Lines changed: 0 additions & 6 deletions
This file was deleted.

doc/architectural/symbolic-executors.md

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)