Skip to content

Improve developer documentation v2 #2750

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 23 commits into from
Aug 21, 2018
Merged
Show file tree
Hide file tree
Changes from 5 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion doc/architectural/bmct-class.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,4 +5,4 @@

## equation ##

To be documented.
See \ref symex-overview.
30 changes: 1 addition & 29 deletions doc/architectural/data-structures-from-ast-to-goto-program.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,35 +5,7 @@

## goto_programt ##

See \ref goto_programt.

### instructiont ###

See [instructiont](\ref goto_programt::instructiont).

#### Types, motivation of each type #####

See [instructiont](\ref goto_programt::instructiont).

#### Accepted code (codet) values ####

To be documented.

#### Accepted guard (exprt) values ####

To be documented.

## goto_functionst ##

\ref goto_functionst is a map from function names to function bodies (CFGs).

To be documented.

## goto_modelt ##

\ref goto_modelt is a compilation unit.

To be documented.
See \ref goto-programs, \ref goto_programt and [instructiont](\ref goto_programt::instructiont).

## Example: ##

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,24 +5,32 @@

## language_uit, language_filest, languaget classes: ##

### Purpose ###

To be documented.
See \ref langapi.

### Parse ###
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed.


To be documented.
See \ref language_uit::parse().

### Typecheck ###
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed.


To be documented.
See \ref language_uit::typecheck().

### Final ###
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed.


To be documented.
See \ref language_uit::final().

## C ##

See \ref ansi-c.

## C++ ##

See \ref cpp.

## Java bytecode ##

See \ref java_bytecode.

### Explain how a java program / class is represented in a .class ###
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should be explained in java_bytecode


To be documented.
Expand Down
23 changes: 14 additions & 9 deletions doc/architectural/front-page.md
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,10 @@ you can access it <a href=

### For contributors:

The following pages attempt to provide the information that a developer needs to
work on CBMC, in a sensible order. In many cases they link to the appropriate
class-level or module-level documentation.

* \subpage compilation-and-development

* \subpage background-concepts
Expand All @@ -92,18 +96,19 @@ you can access it <a href=

* \subpage other-tools

* For higher-level architectural information, each of the pages under
the <a href="modules.html">Modules</a>
link gives an overview of a directory in the CProver codebase.

* If you already know exactly what you're looking for, the API reference
is generated from the codebase. You can search for classes and class
members in the search bar at top-right or use one of the links in the
sidebar.

* The \subpage tutorial "CBMC Developer Tutorial" helps new contributors
to CProver to get their feet wet through a series of programming
exercises - mostly modifying goto-instrument, and thus learning to
manipulate the main data structures used within CBMC.

For higher-level architectural information, each of the pages under
the <a href="modules.html">Modules</a>
link gives an overview of a directory in the CProver codebase.

If you already know exactly what you're looking for, the best place
to look is the API reference, which
is generated from the codebase. You can search for classes and class
members in the search bar at top-right or use one of the links in the
sidebar.

\defgroup module_hidden _hidden
2 changes: 2 additions & 0 deletions doc/architectural/solvers-infrastructure.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,8 @@

\author

See \ref solvers-overview.

## Flattening ##
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can be removed.


To be documented.
Expand Down
3 changes: 2 additions & 1 deletion doc/architectural/static-analysis-apis.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@

\author

To be documented.

See \ref analyses and \ref pointer-analysis.
4 changes: 2 additions & 2 deletions doc/architectural/symbolic-executors.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,6 @@

\author

## Symex class ##
## Symbolic execution ##

To be documented.
See \ref symex-overview.