L1 Flashcards

1
Q

Program Analysis

A

automatically discover useful fact about the programs

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

3 kinds of analysis

A

dynamic (run-time)
static (compile-time)
hybrid

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

dynamic analysis

A

infers facts of the program by monitoring its run

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

purify

A

array bound checking

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

eraser

A

data race detection

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

valgrind

A

memory leak detection

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

daikon

A

finding likely invariants

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

static analysis

A

by inspecting its code. sacrifices completeness, but sounds

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

lint, findbugs, coverity

A

a suspicious error pattern

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

facebook infer

A

memory leak detection

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

microsoft slam

A

API usage rule

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

esc/java

A

verify invariants

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

discovering invariants

A

dynamic: finds what might be an invariant and what is definitely not an invariant
static: definitely is or is not an invariant

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

compiler

A

bridges the gap between high-level languages and architecture
use program analyses to generate efficient code

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

software quality tools

A

testing, debugging, and verification

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

integrated dev environments (IDEs)

A
  • understand and refactor programs

- useful with large and complex programs

17
Q

invariant

A

fact that is true in any branch of a program