lib#

Info#

Full Name

lib_after_inline

Version

4.0.0

Direct download (.csv + .md)

.tar.gz

Origin

.txt

CSV File Structure#

Column Number

Column Type

Column Description

1

int

The tail of the edge

2

int

The head of the edge

3

str

The label of the edge

Graph Statistics#

Num Nodes

Num Edges

3401355

2931880

Edges Statistics#

Edge Label

Num Edge Label

d

2267569

a

664311

Canonical grammars#

Note

In order to get the original graph you must apply function cfpq_data.change_edges with mapping={"a": "A", "d": "D"} to this graph. In this case these grammars must be updated.

Grammars for the alias analysis of C programs introduced in "Demand-driven alias analysis for C". Template for these grammars is described on the C Alias page.

\[\begin{split}S \, \rightarrow \, \overline{d} \, V \, d \, \\ V \, \rightarrow \, V_1 \, V_2 \, V_3 \, \\ V_1 \, \rightarrow \, \varepsilon \, \\ V_1 \, \rightarrow \, V_2 \, \overline{a} \, V_1 \, \\ V_2 \, \rightarrow \, \varepsilon \, \\ V_2 \, \rightarrow \, S \, \\ V_3 \, \rightarrow \, \varepsilon \, \\ V_3 \, \rightarrow \, a \, V_2 \, V_3 \, \\\end{split}\]

Pyformlang CFG:

S -> d_r V d
V -> V1 V2 V3
V1 -> epsilon
V1 -> V2 a_r V1
V2 -> epsilon
V2 -> S
V3 -> epsilon
V3 -> a V2 V3

\[\begin{split}S \, \rightarrow \, \overline{d} \, V \, d \, \\ V \, \rightarrow \, ((S \mid \varepsilon) \, \overline{a})^{*} \, (S \mid \varepsilon) \, (a \, (S \mid \varepsilon))^{*} \, \\\end{split}\]

Pyformlang RSA:

S -> d_r V d
V -> ((S|epsilon) a_r)* (S|epsilon) (a (S|epsilon))*