Finite Models Flashcards

1
Q

What are the main four properties of models?

A
  1. Compact - representable, manipulable in a compact form
  2. Predictive - represents salient characteristics enough to distinguish good and bad outcomes of analysis.
  3. Semantically Meaningful - necessary to interpret analysis results to allow diagnosis of causes of failure.
  4. Sufficiently general - models must be general enough to be used in the domain of the application
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

What is a directed graph?

A

A directed graph has a set of nodes N, and a set of relations of the nodes E, edges

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

What are labels and code in graphs?

A

You can label nodes with the names or descriptions of the entities they represent. E.g. program regions of assigning statements.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

What is a multidimensional graph representation?

A

You can draw a single diagram to represent more than one directed graph, like extensions of classes or showing a class has an instance of another.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

What is meant by a finite abstraction of behaviour?

A

An abstraction function suppresses some details of program execution and lumps together execution states that differ with respect to suppressed details but otherwise identical.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

What is a Control Flow Graph (intraprocedural)?

A

Like an activity diagram, but shows regions of code as nodes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

What are the elements of a Control Flow Graph?

A

Nodes - source code in basic blocks with a single entry and exit point. Statements can be grouped to get a compact model. Statements can also be broken down to model control flow within.
Directed edges - possibility the program execution goes from end of one region DIRECTLY to the beginning of another.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

What are Linear Code Sequence and Jumps (LCSJ)?

A

Subpaths of a control flow graph from one branch to another. There is a lookup table with From, Sequence of blocks, To.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

What are interprocedural control flow graphs?

A

Also called call graphs, they have Nodes that represent procedures (methods, c functions) and Edges that represent CALLS relation. Can often overestimate the CALLS relation. You can have context sensitive graphs that

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Why do interprocedural control flow graphs overestimate CALLS relations?

A

The static graph includes calls through dynamic bindings that never occur in execution.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Context sensitive vs insensitive call graphs?

A

Sensitive - the most precise type, means that for every procedure the graph contains a node for each call stack the procedure can be activated with. Insensitive - only one node for each procedure.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly